CyberAlphaWolf

Server : Apache
System : Linux 182.49.167.72.host.secureserver.net 4.18.0-553.92.1.el8_10.x86_64 #1 SMP Wed Jan 14 06:31:58 EST 2026 x86_64
User : kikai ( 1014)
PHP Version : 8.3.30
Disable Function : NONE
Directory :  /opt/python38/lib/python3.8/sqlite3/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

�i�_�:�@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?S)@�RegressionTestscCst�d�|_dS)N�:memory:)�sqlite�connect�con��self�r
�6/opt/python38/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	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)�assertRaisesrr0rr�bytes�	bytearray�fetchoneZassertInr+�	exception)r	�cm�msgr
r
r�CheckErrorMsgDecodeError�s�z(RegressionTests.CheckErrorMsgDecodeErrorcCs|�ttjid�dS)z!
        See issue 3312.
        N)r>�	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|d��0|�	|��|�_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)�__name__�
__module__�__qualname__rHrKr
rr
r�	CustomStr�srOr)r7�DEFERREDZ	IMMEDIATEZ	EXCLUSIVE)�levelrP���abczIMMEDIATEEXCLUSIVE�é)r+rrrJ�subTest�lower�
capitalizerF�
ValueErrorr>r&)r	rOrQZpairs�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�rLrMrNr]r
r
r
r�Cursor�sr_rz
select 4+5z$^Base Cursor\.__init__ not called\.$N)	rr_rr>�ProgrammingErrorr�fetchallZassertRaisesRegexr)r	r_rrr
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)rLrMrNr
r
r
r�MyStr�srczselect ?rTN)r+rr)r	rcr
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
rr]�szPRegressionTests.CheckConnectionConstructorCallCheck.<locals>.Connection.__init__Nr^r
r
r
r�
Connection�srfrN)rrfr>r`r�r	rfrrr
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�r_r
rr�szBRegressionTests.CheckCursorRegistration.<locals>.Connection.cursorN)rLrMrNrr
rir
rrf�srfc@seZdZdd�ZdS)z7RegressionTests.CheckCursorRegistration.<locals>.CursorcSstj�||�dSr
)rr_r]r1r
r
rr]�sz@RegressionTests.CheckCursorRegistration.<locals>.Cursor.__init__Nr^r
r
r
rr_�sr_rzcreate table foo(x)zinsert into foo(x) values (?))r-)�)rzselect x from fooN)
rrfr_rrr!r"r>ZInterfaceErrorrargr
rir�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.
        rNrI)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)rrrrA)r	r�rowr
r
r�CheckPragmaAutocommit�s




z%RegressionTests.CheckPragmaAutocommitcCs|�tj|jd�dS)z}
        Call a connection with a non-string SQL request: check error handling
        of the statement constructor.
        rRN)r>r�Warningrrr
r
r�CheckConnectionCallsz#RegressionTests.CheckConnectionCallcCs"dd�}|�tj|jjd|�dS)NcSsdS)NrRr
)�a�br
r
r�collation_cbsz4RegressionTests.CheckCollation.<locals>.collation_cbu�)r>rr`rZcreate_collation)r	rsr
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 (?))rRrR)rr
�rr
r�foosz4RegressionTests.CheckRecursiveCursorUse.<locals>.foozinsert into b (baz) values (?)css|]}|fVqdSr
r
)rr$r
r
r�	<genexpr>%sz:RegressionTests.CheckRecursiveCursorUse.<locals>.<genexpr>N)rrrrr>r`r!)r	rrvr
rur�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
rr:szKRegressionTests.CheckConvertTimestampMicrosecondPadding.<locals>.<listcomp>i�rj��ri@�i@�N)rrr:rrrar&r;)r	rr�valuesr
r
r�'CheckConvertTimestampMicrosecondPadding's



�z7RegressionTests.CheckConvertTimestampMicrosecondPaddingcCs|jttjddd�dS)Nr�{rI)r>rFrrrr
r
r�CheckInvalidIsolationLevelTypeAs
�z.RegressionTests.CheckInvalidIsolationLevelTypecCsRt�d�}|�t|d�|�t|d�|��}|�t|jd�|�t|jd�dS)Nrz	select 1z	select 1z
 select 2z	select 2)rrr>rYrrrr
r
r�CheckNullCharacterGs
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);
        r7rzselect c from t)r$rmzinsert into t2(c) values (?)rRr.r-z'should have returned exactly three rowsN)	rrZ
executescriptr&rJ�	enumeraterrVr/)r	rZcounterr$rmr
r
r�CheckCommitCursorResetPs 

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�callbacktsz/RegressionTests.CheckBpo31770.<locals>.callbackrN)rrr_�weakref�refr]r�
gc_collect)r	r�rrr�r
r
r�
CheckBpo31770os


zRegressionTests.CheckBpo31770c	Cs |�t��|j`W5QRXdSr
)r>�AttributeErrorrrJrr
r
r�CheckDelIsolation_levelSegfaults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)rLrMrNr�r
r
r
r�Printer�sr�rR)�nzselect 1)rZset_trace_callback�	functools�partialZset_progress_handlerZset_authorizerr�r)r	r��methodZprinter_instancer
r
r�
CheckBpo37347�s�

zRegressionTests.CheckBpo37347N)%rLrMrNrrrrr%r(r,�unittestZskipIfrZsqlite_version_infor2r6r8r<rErGr\rbrdrhrkrlrnrprtrxr|r~rr�r�r�r�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�rLr
r
r
r�<module>sv

XYZEAZ - Cyber Alpha Wolf © All Rights Reserved