HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_sqlite3/__pycache__/test_hooks.cpython-311.pyc
�

��Vc!4����ddlZddlZddlZddlmZmZddlmZm	Z	ddl
mZGd�dej��Z
Gd�dej��ZGd	�d
ej��Zedkrej��dSdS)�N)�TESTFN�unlink)�memory_database�cx_limit)�with_tracebacksc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�CollationTestsc���tjd��}|�t��5|�dd���ddd��dS#1swxYwYdS)N�:memory:c��||k||kz
S�N���x�ys  �0D:\Python311\Lib\test\test_sqlite3\test_hooks.py�<lambda>zACollationTests.test_create_collation_not_string.<locals>.<lambda>%���Q��U�q�1�u�4E��)�sqlite�connect�assertRaises�	TypeError�create_collation��self�cons  r� test_create_collation_not_stringz/CollationTests.test_create_collation_not_string"s����n�Z�(�(��
�
�
�y�
)�
)�	G�	G�� � ��'E�'E�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs�A�A�Ac��tjd��}|�t��5}|�dd��ddd��n#1swxYwY|�t
|j��d��dS)Nr�X�*zparameter must be callable)rrrrr�assertEqual�str�	exception�rr�cms   r�"test_create_collation_not_callablez1CollationTests.test_create_collation_not_callable's����n�Z�(�(��
�
�
�y�
)�
)�	*�R�� � ��b�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�����R�\�*�*�,H�I�I�I�I�Is�A�A�Ac�\�tjd��}|�dd���dS)Nrucolläc��||k||kz
Sr
rrs  rrz@CollationTests.test_create_collation_not_ascii.<locals>.<lambda>/rr)rrrrs  r�test_create_collation_not_asciiz.CollationTests.test_create_collation_not_ascii-s1���n�Z�(�(�����X�'E�'E�F�F�F�F�Frc�n�Gd�dt��}tjd��}d�}|�|d��|��|�d�����}|�|ddd��|�|d	dd
��dS)Nc��eZdZd�ZdS)�CCollationTests.test_create_collation_bad_upper.<locals>.BadUpperStrc��dSr
r�rs r�upperzICollationTests.test_create_collation_bad_upper.<locals>.BadUpperStr.upper3s���trN)�__name__�
__module__�__qualname__r0rrr�BadUpperStrr-2s#������
�
�
�
�
rr4rc��||k||kz
Sr
rrs  rrz@CollationTests.test_create_collation_bad_upper.<locals>.<lambda>6s���Q��1�q�5� 1�2�r�mycollz�
            select x from (
            select 'a' as x
            union
            select 'b' as x
            ) order by x collate mycoll
            r�b��a)r#rrr�execute�fetchallr")rr4rr6�results     r�test_create_collation_bad_upperz.CollationTests.test_create_collation_bad_upper1s���	�	�	�	�	�#�	�	�	��n�Z�(�(��2�2�����[�[��2�2�F�;�;�;�����������
	�	
������1��s�+�+�+�������1��s�+�+�+�+�+rc��d�}tjd��}|�d|��d}|�|�����}|�|gd�d���|�dd��|�tj��5}|�|�����}ddd��n#1swxYwY|�t|j	��d��dS)	Nc��||k||kz
Sr
rrs  rr6z5CollationTests.test_collation_is_used.<locals>.mycollCs���!�e��A��&�'�'rrr6��
            select x from (
            select 'a' as x
            union
            select 'b' as x
            union
            select 'c' as x
            ) order by x collate mycoll
            �)�c)r7)r9�#the expected order was not returned��msg�"no such collation sequence: mycoll)
rrrr:r;r"r�OperationalErrorr#r$)rr6r�sqlr<r&s      r�test_collation_is_usedz%CollationTests.test_collation_is_usedBsQ��	(�	(�	(��n�Z�(�(�����X�v�.�.�.������S�!�!�*�*�,�,������!9�!9�!9�B�	�	D�	D�	D�	���X�t�,�,�,�
�
�
�v�6�
7�
7�	1�2��[�[��%�%�.�.�0�0�F�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�����R�\�*�*�,P�Q�Q�Q�Q�Qs�&(C�C�!Cc���d�}tjd��}|�d|��d}|�|�����}|�|gd�d���dS)Nc�$�||k||kz
dzS)Nlrrs  rr6zCCollationTests.test_collation_returns_large_integer.<locals>.mycoll\s���!�e��A��&�'�%�/�/rrr6r@rArCrD�rrrr:r;r")rr6rrHr<s     r�$test_collation_returns_large_integerz3CollationTests.test_collation_returns_large_integer[s���	0�	0�	0��n�Z�(�(�����X�v�.�.�.������S�!�!�*�*�,�,������!9�!9�!9�B�	�	D�	D�	D�	D�	Drc�`�tjd��}|�dd���|�dd���|�d�����}|�|ddd��|�|ddd	��d
S)z�
        Register two different collation functions under the same name.
        Verify that the last one is actually used.
        rr6c��||k||kz
Sr
rrs  rrz>CollationTests.test_collation_register_twice.<locals>.<lambda>trrc��||k||kz
Sr
rrs  rrz>CollationTests.test_collation_register_twice.<locals>.<lambda>us��q�1�u��Q��6G�4H�rzi
            select x from (select 'a' as x union select 'b' as x) order by x collate mycoll
            rr7r8r9NrL)rrr<s   r�test_collation_register_twicez,CollationTests.test_collation_register_twicens���
�n�Z�(�(�����X�'E�'E�F�F�F����X�'H�'H�I�I�I�����������	�	
������1��s�+�+�+�������1��s�+�+�+�+�+rc�p�tjd��}|�dd���|�dd��|�tj��5}|�d��ddd��n#1swxYwY|�t|j��d��dS)zu
        Register a collation, then deregister it. Make sure an error is raised if we try
        to use it.
        rr6c��||k||kz
Sr
rrs  rrz:CollationTests.test_deregister_collation.<locals>.<lambda>�rrNz?select 'a' as x union select 'b' as x order by x collate mycollrF)	rrrrrGr:r"r#r$r%s   r�test_deregister_collationz(CollationTests.test_deregister_collation|s���
�n�Z�(�(�����X�'E�'E�F�F�F����X�t�,�,�,�
�
�
�v�6�
7�
7�	[�2��K�K�Y�Z�Z�Z�	[�	[�	[�	[�	[�	[�	[�	[�	[�	[�	[����	[�	[�	[�	[�����R�\�*�*�,P�Q�Q�Q�Q�Qs�!B�B�
BN)r1r2r3rr'r*r=rIrMrQrTrrrr	r	!s�������G�G�G�
J�J�J�G�G�G�,�,�,�"R�R�R�2D�D�D�&,�,�,�
R�
R�
R�
R�
Rrr	c�~�eZdZd�Zd�Zd�Zd�Zeed���d���Z	eed���d���Z
d	S)
�
ProgressTestsc���tjd��}g��fd�}|�|d��|�d��|����dS)zK
        Test that the progress handler is invoked once it is set.
        rc�2����d��dS�Nr��append��progress_callss�r�progressz:ProgressTests.test_progress_handler_used.<locals>.progress������!�!�$�'�'�'��1rr8z0
            create table foo(a, b)
            N)rr�set_progress_handlerr:�
assertTrue)rrr^r]s   @r�test_progress_handler_usedz(ProgressTests.test_progress_handler_used�s����n�Z�(�(����	�	�	�	�	�	� � ��1�-�-�-�����	�	�	�	
����'�'�'�'�'rc�~��tjd��}g��fd�}|�|d��|���}|�d��t���}g�|�|d��|�d��t���}|�||��dS)z=
        Test that the opcode argument is respected.
        rc�2����d��dSrYrZr\s�rr^z1ProgressTests.test_opcode_count.<locals>.progress�r_rr8z1
            create table foo (a, b)
            �z1
            create table bar (a, b)
            N)rrr`�cursorr:�len�assertGreaterEqual)rrr^�curs�first_count�second_countr]s      @r�test_opcode_countzProgressTests.test_opcode_count�s�����n�Z�(�(����	�	�	�	�	�	� � ��1�-�-�-��z�z�|�|������	�	�	��.�)�)����� � ��1�-�-�-�����	�	�	��>�*�*������\�:�:�:�:�:rc���tjd��}d�}|�|d��|���}|�tj|jd��dS)zW
        Test that returning a non-zero value stops the operation in progress.
        rc��dS)Nr8rrrrr^z5ProgressTests.test_cancel_operation.<locals>.progress�s���1rr8zcreate table bar (a, b)N)rrr`rfrrGr:)rrr^ris    r�test_cancel_operationz#ProgressTests.test_cancel_operation�su���n�Z�(�(��	�	�	�� � ��1�-�-�-��z�z�|�|������#��L�%�	'�	'�	'�	'�	'rc���tjd��}d��fd�}|�|d��|�dd��|�d�����|��dd��dS)zc
        Test that setting the progress handler to None clears the previously set handler.
        rrc���d�dS�Nr8rr)�actions�rr^z2ProgressTests.test_clear_handler.<locals>.progress�s
����F��1rr8Nz&select 1 union select 2 union select 3z progress handler was not cleared)rrr`r:r;r")rrr^rss   @r�test_clear_handlerz ProgressTests.test_clear_handler�s�����n�Z�(�(����	�	�	�	�	�	� � ��1�-�-�-�� � ��q�)�)�)����<�=�=�F�F�H�H�H������$F�G�G�G�G�Gr�bad_progress)�namec��tjd��}d�}|�|d��|�tj��5|�d��ddd��dS#1swxYwYdS)Nrc��ddzdSrrrrrrruzBProgressTests.test_error_in_progress_handler.<locals>.bad_progress�s��
��E�E�E�Err8�8
                create table foo(a, b)
                �rrr`rrGr:)rrrus   r�test_error_in_progress_handlerz,ProgressTests.test_error_in_progress_handler�s����n�Z�(�(��	�	�	�� � ��q�1�1�1�
�
�
�v�6�
7�
7�	�	��K�K��
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�
A0�0A4�7A4c���tjd��}Gd�d����fd�}|�|d��|�tj��5|�d��ddd��dS#1swxYwYdS)Nrc��eZdZd�ZdS)�DProgressTests.test_error_in_progress_handler_result.<locals>.BadBoolc��ddzdSrrrr/s r�__bool__zMProgressTests.test_error_in_progress_handler_result.<locals>.BadBool.__bool__�s���A����rN)r1r2r3r�rrr�BadBoolr~�s#������
�
�
�
�
rr�c������Sr
r)r�s�rruzIProgressTests.test_error_in_progress_handler_result.<locals>.bad_progress�s����7�9�9�rr8ryrz)rrrur�s   @r�%test_error_in_progress_handler_resultz3ProgressTests.test_error_in_progress_handler_result�s�����n�Z�(�(��	�	�	�	�	�	�	�	�	�	�	�	�	�� � ��q�1�1�1�
�
�
�v�6�
7�
7�	�	��K�K��
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�B�B�BN)r1r2r3rbrlrortr�ZeroDivisionErrorr{r�rrrrVrV�s�������
(�
(�
(�;�;�;�.'�'�'�
H�
H�
H��_�&�^�<�<�<���=�<���_�&�^�<�<�<���=�<���rrVc��eZdZejd���Zd�Zd�Zd�Zd�Z	d�Z
eej
d���d	���Zeed
���d���ZdS)
�TraceCallbackTestsc#��K�	g�|��fd���dV�|��|��|�d��dS#|��|��|�d��wxYw)Nc�.����|��Sr
rZ)�stmt�traceds �rrz5TraceCallbackTests.check_stmt_trace.<locals>.<lambda>�s���v�}�}�T�/B�/B�r)�set_trace_callbackr")r�cx�expectedr�s   @r�check_stmt_tracez#TraceCallbackTests.check_stmt_trace�s������	(��F��!�!�"B�"B�"B�"B�C�C�C��E�E�E����V�X�.�.�.��!�!�$�'�'�'�'�'��
���V�X�.�.�.��!�!�$�'�'�'�'���s�A�-A=c���tjd��}g��fd�}|�|��|�d��|����|�td��D������dS)zI
        Test that the trace callback is invoked once it is set.
        rc�2����|��dSr
rZ��	statement�traced_statementss �r�tracez:TraceCallbackTests.test_trace_callback_used.<locals>.trace������$�$�Y�/�/�/�/�/r�create table foo(a, b)c3�K�|]}d|vV��	dS)zcreate table fooNr)�.0r�s  r�	<genexpr>z>TraceCallbackTests.test_trace_callback_used.<locals>.<genexpr>�s(����U�U�4�.�$�6�U�U�U�U�U�UrN)rrr�r:ra�any�rrr�r�s   @r�test_trace_callback_usedz+TraceCallbackTests.test_trace_callback_used�s�����n�Z�(�(����	0�	0�	0�	0�	0����u�%�%�%����,�-�-�-����)�*�*�*�����U�U�CT�U�U�U�U�U�V�V�V�V�Vrc����tjd��}g��fd�}|�|��|�d��|�d��|��d��dS)zb
        Test that setting the trace callback to None clears the previously set callback.
        rc�2����|��dSr
rZr�s �rr�z;TraceCallbackTests.test_clear_trace_callback.<locals>.tracer�rNr�ztrace callback was not cleared)rrr�r:�assertFalser�s   @r�test_clear_trace_callbackz,TraceCallbackTests.test_clear_trace_callback�s�����n�Z�(�(����	0�	0�	0�	0�	0����u�%�%�%����t�$�$�$����,�-�-�-����*�,L�M�M�M�M�Mrc����d�tjd��}g��fd�}|�|��|�d��|�d�z��|���|�t
�fd��D����dt����dd	�tt���������d
S)zG
        Test that the statement can contain unicode literals.
        uöäüÖÄÜ߀rc�2����|��dSr
rZr�s �rr�z6TraceCallbackTests.test_unicode_content.<locals>.tracer�r�create table foo(x)z insert into foo(x) values ('%s')c3� �K�|]}�|vV��	dSr
r)r�r��
unicode_values  �rr�z:TraceCallbackTests.test_unicode_content.<locals>.<genexpr>s(�����P�P�d�M�T�1�P�P�P�P�P�Prz
Unicode data z garbled in trace callback: z, N)
rrr�r:�commitrar��ascii�join�map)rrr�r�r�s   @@r�test_unicode_contentz'TraceCallbackTests.test_unicode_contents����=�
��n�Z�(�(����	0�	0�	0�	0�	0����u�%�%�%����)�*�*�*����6��F�G�G�G��
�
��������P�P�P�P�>O�P�P�P�P�P�P� ��/�/�/�/����3�u�FW�;X�;X�1Y�1Y�1Y�[�	\�	\�	\�	\�	\rc���g��fd�}ddg}|�tt��tjtd���}tjt��}	|�|��|���}|�|d��|�d��|�|d��|���|���n-#|���|���wxYw|�	�|��dS)Nc�2����|��dSr
rZr�s �rr�z=TraceCallbackTests.test_trace_callback_content.<locals>.tracer�rr�zinsert into foo(x) values(1))�isolation_levelrzcreate table bar(x)r8)
�
addCleanuprrrrr�rfr:�closer")rr��queries�con1�con2�curr�s      @r�test_trace_callback_contentz.TraceCallbackTests.test_trace_callback_contents(�����	0�	0�	0�	0�	0�)�1�3�������'�'�'��~�f�d�;�;�;���~�f�%�%��	��#�#�E�*�*�*��+�+�-�-�C��K�K���
�#�#�#��L�L�.�/�/�/��K�K���
�#�#�#��J�J�L�L�L��J�J�L�L�L�L��
�J�J�L�L�L��J�J�L�L�L�L�������*�G�4�4�4�4�4s
�"A4C?�?*D)c
�p�gd�}t��5}|�||��5|5|�d��|�dd�t	d��D����ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)N)�create table t(t)zBEGIN zinsert into t values(0)zinsert into t values(1)zinsert into t values(2)�COMMITr�zinsert into t values(?)c3�K�|]}|fV��dSr
r)r��vs  rr�z=TraceCallbackTests.test_trace_expanded_sql.<locals>.<genexpr>>s$����:R�:R�A�A�4�:R�:R�:R�:R�:R�:Rr�)rr�r:�executemany�range)rr�r�s   r�test_trace_expanded_sqlz*TraceCallbackTests.test_trace_expanded_sql2s���
�
�
���
�
�	T�"�d�&;�&;�B��&I�&I�	T�	T��
T�
T��
�
�.�/�/�/����8�:R�:R��q���:R�:R�:R�S�S�S�
T�
T�
T�
T�
T�
T�
T�
T�
T�
T�
T����
T�
T�
T�
T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T����	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T�	T����	T�	T�	T�	T�	T�	TsX�B+�B�AA<�0B�<B�B�B�B�B+�B	�B+�B	�B+�+B/�2B/z5Expanded SQL string exceeds the maximum string length)�regexc�*�d}tj}t��5}t||���5}d}d|z}|dz}|g}tjdkrg}|�||��5|�||f��ddd��n#1swxYwY|�d|�d�}	|�||	g��5|�||f��ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)Nzselect 1 as a where a=)�categoryr9�?)r��r�')r�SQLITE_LIMIT_LENGTHrr�sqlite_version_infor�r:)
r�templater�r��lim�ok_param�	bad_param�unexpanded_queryr��expanded_querys
          r� test_trace_too_much_expanded_sqlz3TraceCallbackTests.test_trace_too_much_expanded_sql@s6��,���-��
�
�
�
	:�"�h�r�H�&E�&E�&E�
	:���H��c�	�I�'�#�~��(�)�H��)�J�6�
����&�&�r�8�4�4�
;�
;��
�
�+�i�\�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�!)�6�6�8�6�6�6�N��&�&�r�N�+;�<�<�
:�
:��
�
�+�h�[�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:����
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:�
	:����
	:�
	:�
	:�
	:�
	:�
	:s|�D�8C0�'B�?C0�B�C0�B�"C0�5C�
C0�C�C0� C�!C0�$D�0C4	�4D�7C4	�8D�D�Dzdivision by zeroc��t��5}|�d���|�d��ddd��dS#1swxYwYdS)Nc��ddzS)N�rr)r�s rrz;TraceCallbackTests.test_trace_bad_handler.<locals>.<lambda>]s
��q��s�rzselect 1)rr�r:)rr�s  r�test_trace_bad_handlerz)TraceCallbackTests.test_trace_bad_handlerZs���
�
�
�	#�"��!�!�"2�"2�3�3�3��J�J�z�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�,A�A�AN)r1r2r3�
contextlib�contextmanagerr�r�r�r�r�r�rr�	DataErrorr�r�r�rrrr�r��s���������(�(���(�W�W�W�N�N�N�\�\�\�"5�5�5�,T�T�T��_���E����:�:�	��:�,�_�&�.@�A�A�A�#�#�B�A�#�#�#rr��__main__)r��sqlite3r�unittest�test.support.os_helperrr�test.test_sqlite3.test_dbapirr�$test.test_sqlite3.test_userfunctionsr�TestCaser	rVr�r1�mainrrr�<module>r�s>��.������������1�1�1�1�1�1�1�1�B�B�B�B�B�B�B�B�@�@�@�@�@�@�eR�eR�eR�eR�eR�X�&�eR�eR�eR�N[�[�[�[�[�H�%�[�[�[�|x#�x#�x#�x#�x#��*�x#�x#�x#�v�z����H�M�O�O�O�O�O��r