Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/test/test_sqlite3/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/test/test_sqlite3/__pycache__/test_regression.cpython-312.opt-1.pyc

�

)Μg<L����ddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZmZGd�dej�ZGd�dej�Zed	k(rej"�yy)
�N)�support)�patch)�memory_database�cx_limitc���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'y&)'�RegressionTestsc�8�tjd�|_y)N�:memory:)�sqlite�connect�con��selfs �>/usr/local/lib/python3.12/test/test_sqlite3/test_regression.py�setUpzRegressionTests.setUp#s���>�>�*�-���c�8�|jj�y�N)r
�closers r�tearDownzRegressionTests.tearDown&s�������rc�Z�|jj�}|jd�y)Nzpragma user_version)r
�cursor�execute�r�curs  r�test_pragma_user_versionz(RegressionTests.test_pragma_user_version)s���h�h�o�o������)�*rc�0�tjdtj��}	|jj	�}|jd�|j
�|j
�y#j
�|j
�wxYw)Nr
��detect_typeszpragma schema_version)rr�PARSE_COLNAMESr
rrr�rr
rs   r�test_pragma_schema_versionz*RegressionTests.test_pragma_schema_version.sb���n�n�Z�f�6K�6K�L��	��(�(�/�/�#�C��K�K�/�0��I�I�K��I�I�K��
�I�I�K��I�I�K�s�+A3�3"Bc��tjdd��}td�D�cgc]}|j���}}|dj	d�td�D]/}|djdtd�D�cgc]}|f��c}��1td�D]}||j	d|zd	z��|j
�ycc}wcc}w)
Nr
�)�cached_statementsrzcreate table test(x)�
�insert into test(x) values (?)� zselect x from test)rr�rangerr�executemany�rollback)rr
�x�cursors�is     r�test_statement_resetz$RegressionTests.test_statement_reset8s����n�n�Z�1�=��).�q��2��A�3�:�:�<���2���
���1�2��r��A��A�J�"�"�#C�TY�Z\�T]�E^�T]�q�q�d�T]�E^�_���q��A��A�J���s�Q�w�)=�=�>��	�����3��F_s�C
�<
Cc��|jj�}|jd�|j|jddd�|jd�|j|jddd�y)Nz select 1 as "foo bar [datetime]"rzfoo bar [datetime]zselect 1 as "foo baz"zfoo baz)r
rr�assertEqual�descriptionrs  r�test_column_name_with_spacesz,RegressionTests.test_column_name_with_spacesGsi���h�h�o�o������6�7��������+�A�.�0D�E����+�,��������+�A�.�	�:rc���tjd�}g}td�D]@}|j�}|j	|�|jdt
|�z��B|j�y)Nr
�izselect 1 x union select )rrr)r�appendr�strr)rr
r-r.rs     r�'test_statement_finalization_on_close_dbz7RegressionTests.test_statement_finalization_on_close_dbOs]��
�n�n�Z�(�����s��A��*�*�,�C��N�N�3���K�K�2�S��V�;�<��	�	�	�rc�`�tjd�}|jd�|jd�	|jd�|jd�	|j	�y#tj$rY�8wxYw#tj
$r|j
d�YywxYw)Nr
z3create 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)rrr�
DatabaseError�commit�OperationalError�fail�rr
s  r�test_on_conflict_rollbackz)RegressionTests.test_on_conflict_rollback]s����n�n�Z�(�����I�J����3�4�	��K�K�7�8�	���3�4�	K��J�J�L��	�#�#�	��	��
�&�&�	K��I�I�I�J�	K�s#�A-�B�-B�B�$B-�,B-c��|jjd�|jjd�|jjd�y)zm
        pysqlite would crash with older SQLite versions unless
        a workaround is implemented.
        �create table foo(bar)�drop table fooN�r
rrs r�2test_workaround_for_buggy_sqlite_transfer_bindingszBRegressionTests.test_workaround_for_buggy_sqlite_transfer_bindingsks=��
	
�����0�1������)�*������0�1rc�:�|jjd�y)z
        pysqlite used to segfault with SQLite versions 3.5.x. These return NULL
        for "no-operation" statements
        �NrCrs r�test_empty_statementz$RegressionTests.test_empty_statementts��
	
������rc���d}tjdtj��}|j�}|j	d�|jtd�5|j	dtjj�f�ddd�|j	|�|j	d�|j	d	�|j	d
�|j	|�y#1swY�_xYw)z�
        pysqlite until 2.4.1 did not rebuild the row_cast_map when recompiling
        a statement. This test exhibits the problem.
        zselect * from foor
rzcreate table foo(bar timestamp)�adapterzinsert into foo(bar) values (?)NrBzcreate table foo(bar integer)�insert into foo(bar) values (5))	rr�PARSE_DECLTYPESrr�assertWarnsRegex�DeprecationWarning�datetime�now)r�SELECTr
rs    r�test_type_map_usagez#RegressionTests.test_type_map_usage{s���
%���n�n�Z�V�5K�5K�L���j�j�l�����5�6�
�
"�
"�#5�y�
A��K�K�9�H�<M�<M�<Q�<Q�<S�;U�V�B����F�����$�%����3�4����5�6����F��
B�
A�s�0C-�-C6c���G�fd�d�}|�dg�tjdtj��}|jd�|j	t
�5|jd��ddd�y#1swYyxYw)Nc���eZdZ�fd�Zy)�2RegressionTests.test_bind_mutating_list.<locals>.Xc�&���j�y)Nz...)�clear)r�protocol�
parameterss  �r�__conform__z>RegressionTests.test_bind_mutating_list.<locals>.X.__conform__�s���� � �"�rN)�__name__�
__module__�__qualname__rY)rXs�r�XrT�s���
rr]rr
rz$create table foo(bar X, baz integer)z'insert into foo(bar, baz) values (?, ?))rrrKr�assertRaises�
IndexError)rr]r
rXs   @r�test_bind_mutating_listz'RegressionTests.test_bind_mutating_list�sf���	�	��c�1�X�
��n�n�Z�V�5K�5K�L�����:�;�
�
�
�z�
*��K�K�A�:�N�+�
*�
*�s�"A>�>Bc	�6�|jtj�5}|jj	dtt
dg��f�j�ddd�d}|j|tj��y#1swY�1xYw)Nz"select 'xxx' || ? || 'yyy' colname�z9Could not decode to UTF-8 column 'colname' with text 'xxx)r^rr<r
r�bytes�	bytearray�fetchone�assertInr7�	exception)r�cm�msgs   r�test_error_msg_decode_errorz+RegressionTests.test_error_msg_decode_error�su���
�
�v�6�6�
7�2��H�H���A�#�I�s�e�$4�5�7�
9�9A���8�J���
�
�c�3�r�|�|�,�-�	8�
7�s�?B�Bc�P�|jttjid�y)z!
        See issue 3312.
        N)r^�	TypeErrorr�register_adapterrs r�test_register_adapterz%RegressionTests.test_register_adapter�s��	
���)�V�%<�%<�b�$�Grc���G�fd�dt�}tjd��d�_dD][}|j	|��5|�_|j��_|j
��_||��_ddd��]d�_d�_dtfdtfd	tfd
tfdtfg}|D]]\}}|j	|��5|j|�5|�_ddd�|j�jd�ddd��_y#1swY��xYw#1swY�<xYw#1swY��xYw)Nc���eZdZd�Z�fd�Zy)�;RegressionTests.test_set_isolation_level.<locals>.CustomStrc��yr�rs r�upperzARegressionTests.test_set_isolation_level.<locals>.CustomStr.upper�s��rc���d�_y)NrF��isolation_levelr>s �r�__del__zCRegressionTests.test_set_isolation_level.<locals>.CustomStr.__del__�s���&(��#rN)rZr[r\rtrx)r
s�r�	CustomStrrq�s
���
�
)rryr
)rF�DEFERRED�	IMMEDIATE�	EXCLUSIVE)�levelrz�r�abczIMMEDIATEEXCLUSIVE�é)r7rrrw�subTest�lower�
capitalizerl�
ValueErrorr^r1)rryr}�pairs�value�excr
s      @r�test_set_isolation_levelz(RegressionTests.test_set_isolation_level�s*���	)��	)��n�n�Z�(��"���=�E����E��*�&+��#�&+�k�k�m��#�&+�&6�&6�&8��#�&/��&6��#�	+�*�>�#���(���
�	�N�S�)�,�u�j�.A�
#�Z�0�6�:�2F�
�� �J�E�3����E��*��&�&�s�+�*/�C�'�,�� � ��!4�!4�j�A�+�*� �+�*��,�+��+�*�s0�?D%�D=�.D1�6$D=�%D.	�1D:�6D=�=E	c��Gd�dtj�}tjd�}||�}|jtj�5|jd�j
�ddd�|jtjd�5|j�ddd�y#1swY�CxYw#1swYyxYw)zd
        Verifies that cursor methods check whether base class __init__ was
        called.
        c��eZdZd�Zy)�BRegressionTests.test_cursor_constructor_call_check.<locals>.Cursorc��yrrsr>s  r�__init__zKRegressionTests.test_cursor_constructor_call_check.<locals>.Cursor.__init__����rN�rZr[r\r�rsrr�Cursorr�����
rr�r
z
select 4+5Nz$^Base Cursor\.__init__ not called\.$)	rr�rr^�ProgrammingErrorr�fetchall�assertRaisesRegexr)rr�r
rs    r�"test_cursor_constructor_call_checkz2RegressionTests.test_cursor_constructor_call_check�s���
	�V�]�]�	��n�n�Z�(���S�k��
�
�
�v�6�6�
7��K�K��%�.�.�0�8�
�
#�
#�F�$;�$;�$K�M��I�I�K�M�M�8�
7��M�M�s� B8�C�8C�C
c�h�Gd�dt�}|jjd|d�f�y)za
        The Python 3.0 port of the module didn't cope with values of subclasses of str.
        c��eZdZy)�0RegressionTests.test_str_subclass.<locals>.MyStrN)rZr[r\rsrr�MyStrr��s�rr�zselect ?rN)r7r
r)rr�s  r�test_str_subclassz!RegressionTests.test_str_subclass�s&��	�C��������e�E�l�_�5rc���Gd�dtj�}|d�}|jtj�5|j	�}ddd�y#1swYyxYw)zh
        Verifies that connection methods check whether base class __init__ was
        called.
        c��eZdZd�Zy)�JRegressionTests.test_connection_constructor_call_check.<locals>.Connectionc��yrrs)r�names  rr�zSRegressionTests.test_connection_constructor_call_check.<locals>.Connection.__init__�r�rNr�rsrr�
Connectionr��r�rr�r
N)rr�r^r�r)rr�r
rs    r�&test_connection_constructor_call_checkz6RegressionTests.test_connection_constructor_call_check�sK��
	��*�*�	���$��
�
�
�v�6�6�
7��*�*�,�C�8�
7�
7�s�A�A$c�2�tjdd��}y)z�
        Verifies that creating a connection in autocommit mode works.
        2.5.3 introduced a regression so that these could no longer
        be created.
        r
Nrv)rrr>s  r�test_auto_commitz RegressionTests.test_auto_commit�s���n�n�Z��>�rc��|jj�}|jd�|jd�|jd�|j�}y)z�
        Verifies that running a PRAGMA statement that does an autocommit does
        work. This did not work in 2.5.3/2.5.4.
        rArJzpragma page_sizeN)r
rrre)rr�rows   r�test_pragma_autocommitz&RegressionTests.test_pragma_autocommit�sF��
�h�h�o�o������+�,����5�6����&�'��l�l�n�rc�F�|jt|jd�y)z}
        Call a connection with a non-string SQL request: check error handling
        of the statement constructor.
        sselect 1N)r^rlr
rs r�test_connection_callz$RegressionTests.test_connection_call�s��
	
���)�T�X�X�{�;rc�b�d�}|jt|jjd|�y)Nc��y)Nr~rs)�a�bs  r�collation_cbz4RegressionTests.test_collation.<locals>.collation_cbs��ru�)r^�UnicodeEncodeErrorr
�create_collation)rr�s  r�test_collationzRegressionTests.test_collations)��	����,�d�h�h�.G�.G��l�	$rc�B��tjd�}|j���jd��jd��fd�}|j	tj
�5�j
dd�|�D��ddd�y#1swYyxYw)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.
        r
zcreate table a (bar)zcreate table b (baz)c3�:�K��jdd�d��y�w)Nzinsert into a (bar) values (?))r~r~�r)rs�r�fooz6RegressionTests.test_recursive_cursor_use.<locals>.foos������K�K�8�$�?��G�s�zinsert into b (baz) values (?)c3�"K�|]}|f���	y�wrrs)�.0r.s  r�	<genexpr>z<RegressionTests.test_recursive_cursor_use.<locals>.<genexpr> s����1�5�a�a�T�5���
N)rrrrr^r�r*)rr
r�rs   @r�test_recursive_cursor_usez)RegressionTests.test_recursive_cursor_use
sx����n�n�Z�(���j�j�l�����*�+����*�+�	��
�
�v�6�6�
7��O�O�<�1�3�5�1�
3�8�
7�
7�s�-B�Bc
�"�tjdtj��}|j�}|j	d�|j	d�|j	d�|j	d�|jtd�5|j�D�cgc]}|d��	}}d	d	d	�|jtjd
dddd
dd�tjd
dddd
dd�g�y	cc}w#1swY�UxYw)z�
        http://bugs.python.org/issue14720

        The microsecond parsing of convert_timestamp() should pad with zeros,
        since the microsecond string "456" actually represents "456000".
        r
rzCREATE 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 t�	converterrNi����i@�i@�)
rrrKrrrLrMr�r1rN)rr
rr,�valuess     r�*test_convert_timestamp_microsecond_paddingz:RegressionTests.test_convert_timestamp_microsecond_padding"s����n�n�Z�f�6L�6L�M���j�j�l�����2�3�	���J�K�	���P�Q����%�&�
�
"�
"�#5�{�
C�$'�L�L�N�3�N�q�a��d�N�F�3�D�	
�������d�A�q�"�a��F�;����d�A�q�"�a��F�;�"
�	��4�D�
C�s�D�#D�/D�D�Dc�R�|jttjdd��y)Nr
�{rv)r^rlrrrs r�!test_invalid_isolation_level_typez1RegressionTests.test_invalid_isolation_level_type=s#�����)� �.�.�*�c�	�	Krc��|jj�}ddg}|D]�}|j|��5|jtj
d|jj|�ddd�|j|��5|jtj
d|j|�ddd���y#1swY�SxYw#1swY��xYw)Nz	select 1z	select 1)�queryz	null char)r
rr�r�rr�r)rr�queriesr�s    r�test_null_characterz#RegressionTests.test_null_characterCs����h�h�o�o�����.���E����E��*��&�&�v�'>�'>��'+�x�x�'7�'7��@�+����E��*��&�&�v�'>�'>��'*�{�{�E�;�+�*�	�*�*��+�*�s�7B?�-C�?C	�C	c�.�tjd�}|jt|d�|jt|d�|j	�}|jt|j
d�|jt|j
d�y)Nr
uselect '�'uselect '�')rrr^r�rrr!s   r�test_surrogateszRegressionTests.test_surrogatesOss���n�n�Z�(�����,�c�3D�E����,�c�3D�E��j�j�l�����,�c�k�k�;L�M����,�c�k�k�;L�Mrc���d}t�5}t|�5}|j�}|dj|��|j	dj|��dj|dz�}|jtj|||�|jtj||j|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nzquery string is too large�select 1zselect 2zselect 3r~)rrr�ljustrr�r�	DataError)rri�cx�lim�cu�sqls      r�test_large_sqlzRegressionTests.test_large_sqlWs���)��
�
�"�h�r�l�c�����B��z����$�%��J�J�z�'�'��,�-��"�"�3�q�5�)�C��"�"�6�#3�#3�S�"�c�B��"�"�6�#3�#3�S�"�*�*�c�J�'3�
�
�l�l��
�
�s#�C �B*C�C �C	�C � C)c�6�tjd�}|jd�|j|jd�d}t|j
d��D]�\}}|j||��5|j
d|f�|j�|dk(r|j|dd�n5|dk(r|j|dd�n|d	k(r|j|dd	�|dz
}d
d
d
���|j|dd�y
#1swY��xYw)
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.
        r
z�
        create table t(c);
        create table t2(c);
        insert into t values(0);
        insert into t values(1);
        insert into t values(2);
        rFrzselect c from t)r.r�zinsert into t2(c) values (?)r~�N�z'should have returned exactly three rows)	rr�
executescriptr1rw�	enumeraterr�r;)rr
�counterr.r�s     r�test_commit_cursor_resetz(RegressionTests.test_commit_cursor_resetds
���n�n�Z�(������	
�	
����,�,�b�1�������,=� >�?�F�A�s�����s��+����:�Q�D�A��
�
���a�<��$�$�S��V�Q�/���\��$�$�S��V�Q�/���\��$�$�S��V�Q�/��1���,�+�@�	
����!�%N�O�,�+�s
�8A9D�D	c���d�}tjd�}tj|�}tj||�}|j|�~~t
j�y)zm
        The interpreter shouldn't crash in case Cursor.__init__() is called
        more than once.
        c��yrrs)�argss r�callbackz/RegressionTests.test_bpo31770.<locals>.callback�s��rr
N)rrr��weakref�refr�r�
gc_collect)rr�r
rr�s     r�
test_bpo31770zRegressionTests.test_bpo31770�sQ��
	��n�n�Z�(���m�m�C� ���k�k�#�x�(�����S�������rc�p�|jt�5|j`ddd�y#1swYyxYwr)r^�AttributeErrorr
rwrs r�!test_del_isolation_level_segfaultz1RegressionTests.test_del_isolation_level_segfault�s&��
�
�
�~�
.����(�/�
.�
.�s�
,�5c�j�Gd�d�}|jjtj|jjd��|jj
fD]P}|�}||j�||j�|jjd�|d��Ry)Nc��eZdZd�Zy)�.RegressionTests.test_bpo37347.<locals>.Printerc�"�tjSr)r�	SQLITE_OK)rr�s  r�logz2RegressionTests.test_bpo37347.<locals>.Printer.log�s���'�'�'rN)rZr[r\r�rsrr�Printerr��s��
(rr�r~)�nr�)r
�set_trace_callback�	functools�partial�set_progress_handler�set_authorizerr�r)rr��method�printer_instances    r�
test_bpo37347zRegressionTests.test_bpo37347�s���	(�	(��x�x�2�2� �(�(����)F�)F�!�L��x�x�.�.�0�F� '�y���#�'�'�(��#�'�'�(��H�H���Z�(��4�L�0rc��|jjd�}|j�d}|j|d�y)Nz
select X''rr)r
rrer1)rr�vals   r�test_return_empty_bytestringz,RegressionTests.test_return_empty_bytestring�s6���h�h���|�,���l�l�n�Q�������c�"rc�L�t�5}|j�}|jd�|jdd�t	d�D��|j�|jd�|jd�|j�ddd�y#1swYyxYw)N�create table t(t)�insert into t values(?)c3�"K�|]}|f���	y�wrrs�r��vs  rr�zFRegressionTests.test_table_lock_cursor_replace_stmt.<locals>.<genexpr>������4�8�a�a�T�8�r�r$�select t from t�drop table t)rrrr*r)r;r!s   r�#test_table_lock_cursor_replace_stmtz3RegressionTests.test_table_lock_cursor_replace_stmt�st��
�
�#��*�*�,�C��K�K�+�,��O�O�5�4�5��8�4�
6��J�J�L��K�K�)�*��K�K��'��J�J�L��
�
�s�BB�B#c�.�t�5}|jd�|jdd�td�D��|j	�|jd�}~|jd�|j	�ddd�y#1swYyxYw)Nr�r�c3�"K�|]}|f���	y�wrrsr�s  rr�zARegressionTests.test_table_lock_cursor_dealloc.<locals>.<genexpr>�r�r�r$r�r)rrr*r)r;r!s   r�test_table_lock_cursor_deallocz.RegressionTests.test_table_lock_cursor_dealloc�sn��
�
�#��K�K�+�,��O�O�5�4�5��8�4�
6��J�J�L��+�+�/�0�C���K�K��'��J�J�L��
�
�s�A7B�Bc�`��t�5��jd��jdd�td�D���j	��fd�}�jdd|��jd�}~�jd	��j	�ddd�y#1swYyxYw)
Nr�r�c3�"K�|]}|f���	y�wrrsr�s  rr�zMRegressionTests.test_table_lock_cursor_non_readonly_select.<locals>.<genexpr>�r�r�r$c�,���jd|f�y)Nr�r�)r�r
s �r�dupzGRegressionTests.test_table_lock_cursor_non_readonly_select.<locals>.dup�s������5��t�<�rrr~zselect dup(t) from tr)rrr*r)r;�create_function)rrrr
s   @r�*test_table_lock_cursor_non_readonly_selectz:RegressionTests.test_table_lock_cursor_non_readonly_select�s����
�
�#��K�K�+�,��O�O�5�4�5��8�4�
6��J�J�L�
�
����q�#�.��+�+�4�5�C���K�K��'��J�J�L��
�
�s�BB$�$B-c�j��t�5}td�D�cgc]}|f��}}|5|jd�|jd|�ddd�g�|j	dd�fd��|jd�|j
�|�ddd�ycc}w#1swY�RxYw#1swYyxYw)Nr$r�r��stepr~c�(���j|f�Sr)r6)r,�stepss �r�<lambda>zHRegressionTests.test_executescript_step_through_select.<locals>.<lambda>�s���U�\�\�1�$�5Grzselect step(t) from t)rr)rr*r	r�r1)rr
r�r�rs    @r�&test_executescript_step_through_selectz6RegressionTests.test_executescript_step_through_select�s����
�
�#�$)�!�H�-�H�q�q�d�H�F�-�����/�0���� 9�6�B���E������+G�H����5�6����U�F�+��
��-�����
�s3�B)�
B�B)�$B�AB)�B)�B&	�"B)�)B2N)(rZr[r\rrrr"r/r3r8r?rDrGrQr`rjrnr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
rrsrrrr"s���.��+�
�
�;��K�2���"O�.�H�B�<�"6��?�
�<�$�3�*�6K�
;�N�K�P�>� )��#�
	�	�
�	,rrc�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�RecursiveUseOfCursorsz$Recursive use of cursors not allowedc��tjdtj��|_|jj	�|_|j
j
d�|j
jdddg�y)Nr
rzcreate table test(x foo)r')r�)�bar)rrr r
rrrr*rs rrzRecursiveUseOfCursors.setUp�s`���>�>�*�/5�/D�/D�F����8�8�?�?�$��������3�4������=�&��1�	3rc�l�|jj�|jj�yr)rrr
rs rrzRecursiveUseOfCursors.tearDown�s�������������rc�:���fd�}tjtjd|i�5�jjd��j
tj�j�jj�ddd�y#1swYyxYw)Nc�N���jj�j�Sr)rr�r
�r,rs �rrzBRecursiveUseOfCursors.test_recursive_cursor_init.<locals>.<lambda>�s������*�*�4�8�8�4r�INITz#select x as "x [INIT]", x from test�
r�dictr�
convertersrrr�r�rir��r�convs` r�test_recursive_cursor_initz0RecursiveUseOfCursors.test_recursive_cursor_init�sh���4��
�Z�Z��)�)�F�D�>�
:��H�H���B�C��"�"�6�#:�#:�D�H�H�#'�8�8�#4�#4�
6�;�
:�
:���AB�Bc�:���fd�}tjtjd|i�5�jjd��j
tj�j�jj�ddd�y#1swYyxYw)Nc�8���jj�Sr)rrrs �rrzCRecursiveUseOfCursors.test_recursive_cursor_close.<locals>.<lambda>�s��������)r�CLOSEz$select x as "x [CLOSE]", x from testrrs` r�test_recursive_cursor_closez1RecursiveUseOfCursors.test_recursive_cursor_close�sh���)��
�Z�Z��)�)�G�T�?�
;��H�H���C�D��"�"�6�#:�#:�D�H�H�#'�8�8�#4�#4�
6�<�
;�
;�r c�>��gf�fd�	}tjtjd|i�5�jjd��j
tj�j�jj�ddd�y#1swYyxYw)Nc�^��|r�jj�S|jd�Sr)rrer6)r,�lrs  �rrzBRecursiveUseOfCursors.test_recursive_cursor_iter.<locals>.<lambda>�s$���a�t�x�x�0�0�2�K�Q�X�X�d�^�Kr�ITERz#select x as "x [ITER]", x from testrrs` r�test_recursive_cursor_iterz0RecursiveUseOfCursors.test_recursive_cursor_iter�sk����K��
�Z�Z��)�)�F�D�>�
:��H�H���B�C��"�"�6�#:�#:�D�H�H�#'�8�8�#4�#4�
6�;�
:�
:�s�AB�BN)	rZr[r\rirrrr$r)rsrrrr�s ��
0�C�3��6�6�6rr�__main__)rN�unittest�sqlite3rr�r��testr�
unittest.mockr�test.test_sqlite3.test_dbapirr�TestCaserrrZ�mainrsrr�<module>r2sa��.�������B�v,�h�'�'�v,�r
#6�H�-�-�#6�L�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists