403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/test/test_sqlite3/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/test_sqlite3/__pycache__/test_userfunctions.cpython-315.opt-1.pyc
R
>lqjesc���]PHs]PHs]PHs]QHGsGs]QHGsG	s	]QH(GsGs]QH(G
s
QsQsQsQsQ	sQ
sQsQsQ
sQsQsQQ2sQQ2sQQ2sQQ2sQQ2sQQ2sQQ2sQQ2s Q Q!2s!Q"Q#\OD2s#Q$Q%2s$Q&Q'\%2s&\ON\OPQ66Q(2Q)Q*\OD22s)Q+Q,\OD2s*Q-Q.\OD2s+Q/Q0\+2s,Q1Q2\+2s-Q3Q4\+2s.\/Q56Xc\O`2P!P!)7�)�Mock�patch)�
bigmemtest�
gc_collect)�cx_limit�memory_database)�with_tracebacksc��Q!)�foo�r��9C:\Python315\\Lib\test\test_sqlite3\test_userfunctions.py�func_returntextr#���rc��Q!)�12rrrr
�func_returntextwithnullr%s��rc��Q!)�barrrrr
�func_returnunicoder'rrc��]*!��*rrrr
�func_returnintr)s��
rc��Q!����Q�	@rrrr
�func_returnfloatr+���rc��P!�Nrrrr
�func_returnnullr!-rrc��Q!)�blobrrrr
�func_returnblobr$/s��rc��Q!)��rrrr
�func_returnlonglongr(1s���Lrc��]]*P!��rrrr
�func_raiseexceptionr,3s���a�C�Crc��[gr )�MemoryErrorrrr
�func_memoryerrorr/5s��
�rc��[gr )�
OverflowErrorrrr
�func_overflowerrorr27s��
�rc�.`�\sQs]:snQsQsQsUsP!)�
AggrNoStepc��P!r r��selfs&r
�__init__�AggrNoStep.__init__;���rc��]!�r&rr6s&r
�finalize�AggrNoStep.finalize>s��rr)�__name__�
__module__�__qualname__�__firstlineno__r8r=�__static_attributes__�__classdictcell__��
__classdict__s@r
r4r4:s����
��rr4c�.`�\sQs]AsnQsQsQsUsP!)�AggrNoFinalizec��P!r rr6s&r
r8�AggrNoFinalize.__init__Br:rc��P!r r�r7�xs&&r
�step�AggrNoFinalize.stepEr:rr)r?r@rArBr8rNrCrDrEs@r
rHrHAs����
�
�
rrHc�4`�\sQs]HsnQsQsQsQsUsP!)�AggrExceptionInInitc��]]*P!r*rr6s&r
r8�AggrExceptionInInit.__init__I���	�!��rc��P!r rrLs&&r
rN�AggrExceptionInInit.stepLr:rc��P!r rr6s&r
r=�AggrExceptionInInit.finalizeOr:rr�	r?r@rArBr8rNr=rCrDrEs@r
rQrQHs�����
�
�
rrQc�4`�\sQs]RsnQsQsQsQsUsP!)�AggrExceptionInStepc��P!r rr6s&r
r8�AggrExceptionInStep.__init__Sr:rc��]]*P!r*rrLs&&r
rN�AggrExceptionInStep.stepVrTrc��]*!rrr6s&r
r=�AggrExceptionInStep.finalizeYs��rrrYrEs@r
r[r[Rs����
���rr[c�4`�\sQs]\snQsQsQsQsUsP!)�AggrExceptionInFinalizec��P!r rr6s&r
r8� AggrExceptionInFinalize.__init__]r:rc��P!r rrLs&&r
rN�AggrExceptionInFinalize.step`r:rc��]]*P!r*rr6s&r
r=� AggrExceptionInFinalize.finalizecrTrrrYrEs@r
rcrc\s����
�
��rrcc�4`�\sQs]fsnQsQsQsQsUsP!)�
AggrCheckTypec��PUmP!r ��valr6s&r
r8�AggrCheckType.__init__gs	����rc
��Q[Q[Q[Q[P2Q[-o[V1*[U2I2UmP!��str�int�float�None�blob�rrrsrt�type�bytesrn)r7�	whichTypern�theTypes&&& r
rN�AggrCheckType.stepjs;���#�u�c�7�E�6�4��:��5�"���w�)�T�#�Y�6�7��rc��UO!r rmr6s&r
r=�AggrCheckType.finalizeo����x�x�rrmrYrEs@r
rkrkfs�����8�
�rrkc�4`�\sQs]rsnQsQsQsQsUsP!)�AggrCheckTypesc��]UmP!�rrmr6s&r
r8�AggrCheckTypes.__init__ss	����rc
���Q[Q[Q[Q[P2Q[-oSFD6oU9O
[V1*[U2I2*
tmJ8	P!rqrw)r7rz�valsr{rns&&*  r
rN�AggrCheckTypes.stepvsL���#�u�c�7�E�6�4��:��5�"���C��H�H��G�.�$�s�)�;�<�<�H�rc��UO!r rmr6s&r
r=�AggrCheckTypes.finalize|rrrmrYrEs@r
r�r�rs�����=��rr�c�4`�\sQs]snQsQsQsQsUsP!)�AggrSumc��QUmP!)�rmr6s&r
r8�AggrSum.__init__�s	����rc�:�U9OU*
tmP!r rm)r7rns&&r
rN�AggrSum.step�s�����C��rc��UO!r rmr6s&r
r=�AggrSum.finalize�rrrmrYrEs@r
r�r�s�������rr�c�4`�\sQs]�snQsQsQsQsUsP!)�AggrTextc��PUmP!)���txtr6s&r
r8�AggrText.__init__�s	����rc�8�UOU*UmP!r r�)r7r�s&&r
rN�
AggrText.step�s���8�8�c�>��rc��UO!r r�r6s&r
r=�AggrText.finalize�rrr�rYrEs@r
r�r��s�����"��rr�c�N`�\sQs]�snQsQsQsQsQsQs	Qs
QsQ	sQ
s
QsQsQ
sQs\\QQ5Q2s\\QQ5Q2s\\QQ5Q2sQsQsQsQsQs\\QQ5Q2sQs Qs!Q s"Q!s#Q"s$Q#s%\\2Q$2s&\\'Q%2Q&2s(\)OT\+OXQ.6�Q'2\-Q/]P
Q(5Q)22s.\)OT\+OXQ.6�Q'2\-Q/]P
Q(5Q*22s/Q+s0Q,s1Q-s2Us3P!)0�
FunctionTestsc�v�[OQ2UmUOOQ][2UOOQ][
2UOOQ][2UOOQ][2UOOQ][2UOOQ][2UOOQ][2UOOQ][2UOOQ	]Q
2UOOQ]Q2UOOQ
][2UOOQ][2UOOQ][2UOOQ]Q2UOOQ]Q2UOOQPQ2UOOQ2P!)�:memory:�
returntext�returntextwithnull�
returnunicode�	returnint�returnfloat�
returnnull�
returnblob�returnlonglong�	returnnanc��[Q2!)�nan)rtrrr
�<lambda>�%FunctionTests.setUp.<locals>.<lambda>�s���u�r�return_noncont_blobc�(�[Q2Q*!)r#�NN�)�
memoryviewrrr
r�r��s���G�)<�S�)Ar�raiseexception�memoryerror�
overflowerror�isblobc�$�[U[2!r )�
isinstancery�rMs&r
r�r��s��
�1�e�8Lr�isnonec��UPI!r rr�s&r
r�r��s���T�	r�spamc��[U2!r )�lenr�s*r
r�r��s���A�rzcreate table test(t text))�sqlite�connect�con�create_functionrrrrrr!r$r(r,r/r2�executer6s&r
�setUp�FunctionTests.setUp�s����>�>�*�-������ � ��q�/�B���� � �!5�q�:Q�R���� � ��!�5G�H���� � ��a��@���� � ���3C�D���� � ��q�/�B���� � ��q�/�B���� � �!1�1�6I�J���� � ��a�1E�F���� � �!6��!A�	C���� � �!1�1�6I�J���� � ���3C�D���� � ��!�5G�H���� � ��1�.L�M���� � ��1�.A�B���� � ���->�?������4�5rc�<�UOO2P!r �r��closer6s&r
�tearDown�FunctionTests.tearDown���������rc���UO[OQ29^tt^2UOO	QQQ2PPP2P!)%fhP!9h)�not -100�blac��]U*!�r�rr�s&r
r��9FunctionTests.test_func_error_on_create.<locals>.<lambda>�s��A�a�Cr���)�assertRaisesRegexr��ProgrammingErrorr�r�r6s&r
�test_func_error_on_create�'FunctionTests.test_func_error_on_create�sA��
�
#�
#�F�$;�$;�Z�
H�
H��H�H�$�$�U�D�-�@�I�
H�
H�
H�s�A�A$	�A$	c	��[OoQo[UOU]Q59^tt^2UOO	Q2UO[OU29^tt^2UOO	Q2PPP2PPP2P!)%fhK9h)%fhP!9h)ztoo many arguments on function)�category�limitzselect abs(-1)zselect max(1, 2))r��SQLITE_LIMIT_FUNCTION_ARGrr�r�r��OperationalError)r7r��msgs&  r
�test_func_too_many_args�%FunctionTests.test_func_too_many_args�s����3�3��.��
�d�h�h���
;�
;��H�H���-�.��'�'��(?�(?��E�E���� � �!3�4�F�<�
;�E�E��<�
;�
;�s0�AB9�8B&	�B9�&B6
�/B6
�1B9�9C
	�C
	c���QoU2oU[2Q$UOOQ]U2UOO2oUO	Q2P!)c��QoU!)c��]!r<rrrr
�f�=FunctionTests.test_func_ref_count.<locals>.getfunc.<locals>.f�s��rr)r�s r
�getfunc�2FunctionTests.test_func_ref_count.<locals>.getfunc�s��
��Hrr
�reftestzselect reftest())�globalsr�r��cursorr�)r7r�r��curs&   r
�test_func_ref_count�!FunctionTests.test_func_ref_count�sO��	�
�I����	�%����� � ��A�q�1��h�h�o�o������&�'rc���UOO2oUOQ2UO2]*oUO	[U2[2UO	UQ2P!)zselect returntext()r
�r�r�r��fetchone�assertEqualrxrr�r7r�rns&  r
�test_func_return_text�#FunctionTests.test_func_return_text�sS���h�h�o�o������)�*��l�l�n�Q�������c��C�(�����e�$rc���UOO2oUOQ2O2]*oUO	[U2[2UO	UQ2P!)zselect returntextwithnull()rr�)r7r��ress&  r
�$test_func_return_text_with_null_char�2FunctionTests.test_func_return_text_with_null_char�sS���h�h�o�o����k�k�7�8�A�A�C�A�F������c��C�(�����h�'rc���UOO2oUOQ2UO2]*oUO	[U2[2UO	UQ2P!)zselect returnunicode()rr�r�s&  r
�test_func_return_unicode�&FunctionTests.test_func_return_unicode�sS���h�h�o�o������,�-��l�l�n�Q�������c��C�(�����e�$rc���UOO2oUOQ2UO2]*oUO	[U2[2UO	U]*2P!)zselect returnint())r�r�r�r�r�rxrsr�s&  r
�test_func_return_int�"FunctionTests.test_func_return_int�sS���h�h�o�o������(�)��l�l�n�Q�������c��C�(�����b�!rc��UOO2oUOQ2UO2]*oUO	[U2[2UQ6fUQ6�cUOQ2P!P!)zselect returnfloat()g�&1�	@gT㥛� 	@zwrong value)r�r�r�r�r�rxrt�failr�s&  r
�test_func_return_float�$FunctionTests.test_func_return_float�sa���h�h�o�o������*�+��l�l�n�Q�������c��E�*���;�#��+��I�I�m�$�&rc��UOO2oUOQ2UO2]*oUO	[U2[P22UO	UP2P!)zselect returnnull())r�r�r�r�r�rxr�s&  r
�test_func_return_null�#FunctionTests.test_func_return_null�sW���h�h�o�o������)�*��l�l�n�Q�������c��D��J�/�����d�#rc���UOO2oUOQ2UO2]*oUO	[U2[2UO	UQ2P!)zselect returnblob()r#)r�r�r�r�r�rxryr�s&  r
�test_func_return_blob�#FunctionTests.test_func_return_blob�sS���h�h�o�o������)�*��l�l�n�Q�������c��E�*�����g�&rc��UOO2oUOQ2UO2]*oUO	UQ2P!)zselect returnlonglong()r'�r�r�r�r�r�r�s&  r
�test_func_return_long_long�(FunctionTests.test_func_return_long_long�s?���h�h�o�o������-�.��l�l�n�Q�������e�$rc��UOO2oUOQ2UOUO	2]*2P!)zselect returnnan())r�r�r��assertIsNoner��r7r�s& r
�test_func_return_nan�"FunctionTests.test_func_return_nan�s8���h�h�o�o������(�)����#�,�,�.��+�,rr,��	msg_regexc�N�UOO2oUO[O29^tt^2oUOQ2UO
2PPP2UO[WO2Q2P!)%fhK79h)zselect raiseexception()�&user-defined function raised exception�
r�r��assertRaisesr�r�r�r�r�rr�	exception�r7r��cms&  r
�test_func_exception�!FunctionTests.test_func_exceptionsk���h�h�o�o���
�
�
�v�6�6�
7�
7�2��K�K�1�2��L�L�N�8�	
����R�\�\�*�,T�U�8�
7�s�"B�B$	�B$	r/c���UOO2oUO[29^tt^2UO	Q2UO2PPP2P!)%fhP!9h)zselect memoryerror())r�r�rr.r�r�rs& r
�test_func_memory_error�$FunctionTests.test_func_memory_error	sH���h�h�o�o���
�
�
�{�
+�
+��K�K�.�/��L�L�N�,�
+�
+�
+�s�"A%�%A6	�.A6	r2c��UOO2oUO[O29^tt^2UOQ2UO
2PPP2P!)%fhP!9h)zselect overflowerror())r�r�rr��	DataErrorr�r�rs& r
�test_func_overflow_error�&FunctionTests.test_func_overflow_errorsN���h�h�o�o���
�
�
�v�/�/�
0�
0��K�K�0�1��L�L�N�1�
0�
0�
0�s�"A/�/B	�8B	c��UOO2oUOQQ2UO2]*oUO	U]2P!)zselect spam(?, ?))r&r�r	r�s&  r
�test_any_arguments� FunctionTests.test_any_argumentssA���h�h�o�o������'��0��l�l�n�Q�������a� rc��UOOQ2oUOUO2]*2P!)zselect isblob(x''))r�r��
assertTruer�rs& r
�test_empty_blob�FunctionTests.test_empty_blobs.���h�h���3�4���������q�)�*rc��UOOQ[Q212oUOUO	2]*2P!)zselect isnone(?)r�)r�r�rtr'r�rs& r
�test_nan_float�FunctionTests.test_nan_float!s6���h�h���1�E�%�L�?�C���������q�)�*rc�d�QoUO[VOOQQ2P!)z1Python int too large to convert to SQLite INTEGER�select spam(?))� )r�r1r�r�)r7�errs& r
�test_too_large_int� FunctionTests.test_too_large_int&s(��A�����}�c�8�8�3C�3C�/��	=rc	��UO[QUOOQ[	Q2Q*12P!)z%underlying buffer is not C-contiguousr.r#r�)r��BufferErrorr�r�r�r6s&r
�test_non_contiguous_blob�&FunctionTests.test_non_contiguous_blob+s5�����{�F�#�x�x�/�/�1A� *�7� 3�C� 8�:�	<rzbuffer.*contiguous)�regexc���UO[O29^tt^2UOO	Q2oUO2PPP2P!)%fhP!9h)zselect return_noncont_blob())rr�r�r�r�r�rs& r
�test_return_non_contiguous_blob�-FunctionTests.test_return_non_contiguous_blob1sF��
�
�
�v�6�6�
7�
7��(�(�"�"�#A�B�C��L�L�N�8�
7�
7�
7�s�,A�A0	�(A0	c�b�UO[QUOOQQ2P!)�surrogates not allowedr.)u��)r��UnicodeEncodeErrorr�r�r6s&r
�test_param_surrogates�#FunctionTests.test_param_surrogates7s)�����1�3K�#�x�x�/�/�1A�0�	2rc�`�,nU1QkoUOOQ]U2]*[1P[1Q[1Q[1Q[1[Q2[1Q[1Q[1Q[1Q	[
1[
[]22[
1[Q	2[
1P[P21,
oSFD2vq4UOOQ
U12oUO2J4	UOUR2P!)c�B:�ROU[U212P!r )�appendrx)�arg�resultss&�r
�
append_result�5FunctionTests.test_func_params.<locals>.append_result>s����N�N�C��c��+�,r�test_paramsl�{�C	lr�inf�textruˢqˡⁱᵗᵉr#zselect test_params(?))
r�r�rsrtrrry�	bytearray�ranger�rxr�r�r�)r7rE�datasetrn�_r�rDs&     @r
�test_func_params�FunctionTests.test_func_params<s������	-���� � ���=�A���I�
��I�
 �#�&�
 �#�&�
�5�M�
�5�\�5�!�
�S�M�
�s�O�
.��4�
�e��
�u�Q�x�
 �%�(�
��
 �%�(�
�4��:��
���F�C��(�(�"�"�#:�S�F�C�C��L�L�N��	
����'�*rc��[PQ5oUOOQ]UP
Q5UO[O
29^tt^2UOO
Q2PPP2P!)%fhP!9h)N��return_value�nondeterministic��
deterministicz>create index t on test(t) where nondeterministic() is not null)rr�r�rr�r�r��r7�mocks& r
�test_func_non_deterministic�)FunctionTests.test_func_non_deterministic\sa����&����� � �!3�Q��E� �R�
�
�
�v�6�6�
7�
7��H�H���]�^�8�
7�
7�
7�s�A:�:B	�B	c���[PQ5oUOOQ]UP	Q5UOOQ2P![O
cSO
Q2P!h9h)NrQrUrTz;create index t on test(t) where deterministic() is not nullz/Unexpected failure while creating partial index)rr�r�r�r�r�r�rVs& r
�test_func_deterministic�%FunctionTests.test_func_deterministicbsd����&����� � ��!�T�� �N�	I��H�H���Z�[���&�&�	I��I�I�G�H�	I�s�A�A5�A5�4A5c��UO[29^tt^2UOOQ][P	2PPP2P!)%fhP!9hrT)r�	TypeErrorr�r�rsr6s&r
�$test_func_deterministic_keyword_only�2FunctionTests.test_func_deterministic_keyword_onlyjs:��
�
�
�y�
)�
)��H�H�$�$�_�a��d�C�*�
)�
)�
)�s�#A�A	�A	c���Qo[29^tt^2oUOQ]U2UQ2o==U,oUOU2==[2PPP2P!)%fhP!9h)c��P!r r)�ts&r
�md5sum�=FunctionTests.test_function_destructor_via_gc.<locals>.md5sumqs��r�md5z(create table lang (name, first_appeared))rr�rBr)r7rd�destrM�ys&    r
�test_function_destructor_via_gc�-FunctionTests.test_function_destructor_via_gcnsa��	��
�
�$�� � ���6�2��?�@�A�����A�
�H�H�Q�K��!��L��
�
�
�s�>A�A0	�(A0	c	�B�UOO2oQoQFDfoUOOQ]U1Qk2UO[O
U29^tt^2UO
Q2PPP2Jh	P!)%fhJ}9h)�string or blob too big�largeintc��U!r r)�values&r
r��>FunctionTests.test_func_return_too_large_int.<locals>.<lambda>�s��rzselect largeint())ll����l)r�r�r�r�r�r r�)r7r�r�ros&   r
�test_func_return_too_large_int�,FunctionTests.test_func_return_too_large_intsr���h�h�o�o���&��+�E��H�H�$�$�Z���4M�N��'�'��(8�(8�#�>�>����/�0�?�>�,�>�>�>�s�-B
	�
B
�B
r<c	�@�UOO2oUOOQ][2QFDFoUO	[
O29^tt^2UOQU12PPP2JH	P!)%fhJ]9h)�pychrzselect pychr(?))i��i��)r�r�r��chrrr�r�r�)r7r�ros&  r
�%test_func_return_text_with_surrogates�3FunctionTests.test_func_return_text_with_surrogates�sl���h�h�o�o������ � ��!�S�1�#�E��"�"�6�#:�#:�;�;����-��x�8�<�;�$�;�;�;�s�*B	�B
�B
zrequires 64bit platform)�size�memuse�dry_runc	�<�UOO2oQFDeoUOOQ]U1Qk2UO[O
29^tt^2UO
Q2PPP2Jg	P!)%fhJ|9h)r��	largetextc��QU*!)�br�rxs&r
r��?FunctionTests.test_func_return_too_large_text.<locals>.<lambda>�s��s�T�zrzselect largetext()�i���r'�r�r�r�rr�r r��r7rxr�s&& r
�test_func_return_too_large_text�-FunctionTests.test_func_return_too_large_text�sm���h�h�o�o���"�D��H�H�$�$�[�!��5Q�R��"�"�6�#3�#3�4�4����0�1�5�4�#�4�4�4���*B
	�
B
�B
c	�<�UOO2oQFDeoUOOQ]U1Qk2UO[O
29^tt^2UO
Q2PPP2Jg	P!)%fhJ|9h)r��	largeblobc��QU*!)�brrs&r
r��?FunctionTests.test_func_return_too_large_blob.<locals>.<lambda>�s��t�d�{rzselect largeblob()r�r�r�s&& r
�test_func_return_too_large_blob�-FunctionTests.test_func_return_too_large_blob�sm���h�h�o�o���"�D��H�H�$�$�[�!��5R�S��"�"�6�#3�#3�4�4����0�1�5�4�#�4�4�4�r�c�`�ROOQ]U1Qk2QoRO[OUROO
Q2P!)�	badreturnc�
:�R!r rr6s�r
r��>FunctionTests.test_func_return_illegal_value.<locals>.<lambda>�s���rrzselect badreturn())r�r�r�r�r�r�)r7r�sf r
�test_func_return_illegal_value�,FunctionTests.test_func_return_illegal_value�sG������ � ��a��>�6�����v�6�6��#�x�x�/�/�1E�	Grc��UO[Q29^tt^2UOOQ]QQ5PPP2P!)%fhP!9h)�$takes exactly 3 positional arguments�noopc��P!r rrrr
r��6FunctionTests.test_func_keyword_args.<locals>.<lambda>�s��Tr)�func)r�r^r�r�r6s&r
�test_func_keyword_args�$FunctionTests.test_func_keyword_args�sH��
�
#�
#�I�6�8�8��H�H�$�$�V�Q�\�$�B�8�8�8�8�s� A
�
A	�A	�r��r')4r?r@rArBr�r�r�r�r�r�r�r�r�rrrr
rr�ZeroDivisionErrorrr.rr1r!r$r(r+r1r5r4r9r>rNrXr[r_rirqr=rv�unittest�
skipUnless�sys�maxsizerr�r�r�r�rCrDrEs@r
r�r��s�����6�.�A�6�
(�%�(�%�"�%�$�'�%�-�
�&�2G�H�V�I�V��[�,>�?��@���]�.B�C��D��!�+�+�
=�
<��[�(<�=��>��
2�
+�@_�I�D��"�]�#�1�$�1��'�)A�B�9�C�9�������u�,�.G�H��U�1�e�4�2�5�I�2�������u�,�.G�H��U�1�e�4�2�5�I�2�G�C�Crr�c�@`�\sQsQsnQsQsQsQsQsQs	Us
P!)�WindowSumInt�c��]UmP!r���countr6s&r
r8�WindowSumInt.__init__�s	����
rc�:�U9OU*
tmP!r r��r7ros&&r
rN�WindowSumInt.step�����
�
�e��
rc��UO!r r�r6s&r
ro�WindowSumInt.value�����z�z�rc�:�U9OU*tmP!r r�r�s&&r
�inverse�WindowSumInt.inverse�r�rc��UO!r r�r6s&r
r=�WindowSumInt.finalize�r�rr�)r?r@rArBr8rNror�r=rCrDrEs@r
r�r��s#���������rr�c��\sQsQsQsP!)�	BadWindow�r)r?r@rArBrCrrr
r�r��s��rr�zRequires SQLite 3.25.0 or newerc�`�\sQsQsnQsQsQsQs\\	2Q2s
\\	2Q2s\\2Q2s
\\2Q	2sQ
sQsQsQ
sUsP!)�WindowFunctionTests��c��[OQ2UmUOO2Um,QNoUO9^tt^2UOOQ2UOO
QU2PPP2,QNUmQUmUOOQ][2P!)%fhKC9h)r�zcreate table test(x, y)zinsert into test values(?, ?)z�
            select x, %s(y) over (
                order by x rows between 1 preceding and 1 following
            ) as sum_y
            from test order by x
        �sumint))�a�)r~r+)�c�)�d�)�er&))r��	)r~�)r��)r�r�)r�r�)r�r�r�r�r�r��executemany�expected�query�create_window_functionr�)r7�valuess& r
r��WindowFunctionTests.setUp�s����>�>�*�-����8�8�?�?�$���
���X�X�X��H�H���6�7��H�H� � �!@�&�I��
��
���
�	
���'�'��!�\�B�!�X�s�8C�C	�C	c�p�UOO2UOO2P!r )r�r�r�r6s&r
r��WindowFunctionTests.tearDown�s�������������rc���UOOUOQ*2UOUOO	2UO
2P!�r�)r�r�r�r��fetchallr�r6s&r
�test_win_sum_int�$WindowFunctionTests.test_win_sum_int�s>����������h�.�/�������*�*�,�d�m�m�<rc���UO[OQ29^tt^2UOO	QQ[
2PPP2P!)%fhP!9h)r��
shouldfailr�)r�r�r�r�r�r�r6s&r
�test_win_error_on_create�,WindowFunctionTests.test_win_error_on_create�sA��
�
#�
#�F�$;�$;�Z�
H�
H��H�H�+�+�L�$��M�I�
H�
H�
H���"A�A'	�A'	c
��QFD�oUOUQ59^tt^2[O[U[Q59^tt^2QU0oUO
O
U][2QUQ0oUO[OU29^tt^2UOOUOU*2UOO2PPP2PPP2PPP2J�	P!)%fhK&9h)%fhK19h)%fhCJ99h)r8)�meth��side_effect�exc_�'z' method raised error)r8rNror�)�subTestr�objectr�r�r�r�r�r�r�r�r�r�r�)r7r��namer�s&   r
�test_win_exception_in_method�0WindowFunctionTests.test_win_exception_in_method�s���:�D����4��(�(��\�\�,��)�L�L�!�$��=�D��H�H�3�3�D�!�\�J��d�V�#8�9�C��/�/��0G�0G��M�M����(�(����d�):�;����)�)�+�N�	M�)�(�;�N�M��	M�L��)�(�(�sO�*D,	�AD
�!AD�(D
�0D,	�D�D�D
�D)�"D)�$D,	�,D>
�5D>
c�f�[O[Q[Q59^tt^2QoUOOU][2UOOUOU*2UOO2PPP2P!)%fhP!9h)r=r��exception_in_finalize)
rr�r�r�r�r�r�r�r�r�)r7r�s& r
�test_win_exception_in_finalize�2WindowFunctionTests.test_win_exception_in_finalize�sm��
�\�\�,�
�	�
J�
J�*�D��H�H�+�+�D�!�\�B��H�H���T�Z�Z�$�.�/��H�H����	K�
J�
J�
J�s�A*B�B0	�(B0	c�@�QQ2oQQ2oQQ2oQU1QU1QU11oSFD�vqVUOVVQ	59^tt^2Q
U0oUOOU]U2UO[O
QUQ029^tt^2UOOUOU*2UOO2PPP2PPP2J�	P!)%fhK9h)%fhJ�9h)
c�4`�\sQsQsnQsQsQsQsUsP!)�AWindowFunctionTests.test_win_missing_method.<locals>.MissingValue�c��P!r rrLs&&r
rN�FWindowFunctionTests.test_win_missing_method.<locals>.MissingValue.step	���trc��P!r rrLs&&r
r��IWindowFunctionTests.test_win_missing_method.<locals>.MissingValue.inverse
���$rc��]*!rrr6s&r
r=�JWindowFunctionTests.test_win_missing_method.<locals>.MissingValue.finalize���rrr)	r?r@rArBrNr�r=rCrDrEs@r
�MissingValuer������#�&�)�)rr�c�4`�\sQsQsnQsQsQsQsUsP!)�CWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse�
c��P!r rrLs&&r
rN�HWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse.stepr�rc��]*!rrr6s&r
ro�IWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse.value���Brc��]*!rrr6s&r
r=�LWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse.finalizer�rr)	r?r@rArBrNror=rCrDrEs@r
�MissingInverser�
r�rrc�4`�\sQsQsnQsQsQsQsUsP!)�@WindowFunctionTests.test_win_missing_method.<locals>.MissingStep�c��]*!rrr6s&r
ro�FWindowFunctionTests.test_win_missing_method.<locals>.MissingStep.valuer�rc��P!r rrLs&&r
r��HWindowFunctionTests.test_win_missing_method.<locals>.MissingStep.inverser�rc��]*!rrr6s&r
r=�IWindowFunctionTests.test_win_missing_method.<locals>.MissingStep.finalizer�rr)	r?r@rArBror�r=rCrDrEs@r
�MissingSteprs����&�&�)�)rrrNror�)r��clsr�r�z' method not defined)
r�r�r�r�r�r�r�r�r�r�)r7r�rrrLr�r
r�s&       r
�test_win_missing_method�+WindowFunctionTests.test_win_missing_methods���	*�	*�
	*�	*�
	*�	*��[�!�
�l�#�
��'�
��
!�I�D����4��1�1��d�V�}�����/�/��a��=��+�+�F�,C�,C�./��v�5I�,J�L�L��H�H�$�$�T�Z�Z�$�%6�7��H�H�%�%�'�L�2�1�!�L�L��2�1�1�s2�
AD	�AC9
�#D	�9D	�D	�D	�D
�D
c���QQ2oQoUOOU]U2UOOUOU*2UOO2P!)c�4`�\sQsQsnQsQsQsQsUsP!)�FWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize�*c��P!r rrLs&&r
rN�KWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize.step+r�rc��]*!rrr6s&r
ro�LWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize.value,r�rc��P!r rrLs&&r
r��NWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize.inverse-r�rr)	r?r@rArBrNror�rCrDrEs@r
�MissingFinalizer*s����#�&�&�&rr�missing_finalize)r�r�r�r�r�r�)r7rr�s&  r
�test_win_missing_finalize�-WindowFunctionTests.test_win_missing_finalize%sT��
	'�	'�
"�����'�'��a��A���������d�*�+������rc���UOOQ]P2UO[OUO
OUOQ*2P!r�)r�r�rr�r�r�r�r�r6s&r
�test_win_clear_function�+WindowFunctionTests.test_win_clear_function4sF�����'�'��!�T�:����&�1�1�4�8�8�3C�3C��*�*�x�/�	1rc�z�QQ[2oUOTt,tFDp"]*U]*]*1MJ	ooUOOQ]U2UOOUOQ*2UOUOO2U2P!ttoh)c�.`�\sQsQsnQsQsQsUsP!)�AWindowFunctionTests.test_win_redefine_function.<locals>.Redefined�;c�H�U9OU]**
tmP!r�r�r�s&&r
rN�FWindowFunctionTests.test_win_redefine_function.<locals>.Redefined.step<s��4�:�:����#:�:rc�H�U9OU]**tmP!r�r�r�s&&r
r��IWindowFunctionTests.test_win_redefine_function.<locals>.Redefined.inverse=s��d�j�j�E�A�I�&=�jrr)r?r@rArBrNr�rCrDrEs@r
�	Redefinedr#;s����:�=�=rr)r�)	r�r�r�r�r�r�r�r�r�)r7r)�vr�s&   r
�test_win_redefine_function�.WindowFunctionTests.test_win_redefine_function9s���	>��	>�-1�M�M�:�M�q�q�T�1�Q�4��6�N�M��:����'�'��!�Y�?���������h�.�/�������*�*�,�h�7��	;s�#B8c���QQ2oUOOQ]U2UO[OQUO
OUOQ*2P!)c�4`�\sQsQsnQsQsQsQsUsP!)�IWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn�Ec��P!r rr6s&r
r8�RWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn.__init__Fs��rc��P!r rrLs&&r
rN�NWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn.stepGr�rc��Q!)r&r/rr6s&r
ro�OWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn.valueHs��G�^rr)	r?r@rArBr8rNrorCrDrEs@r
�ErrorValueReturnr/Es����$�#�+�+rr7�err_val_retrl)r�r�r�r�r r�r�r�)r7r7s& r
�test_win_error_value_return�/WindowFunctionTests.test_win_error_value_returnDsW��	,�	,�
	
���'�'�
�q�:J�K����v�/�/�1I�#�x�x�/�/����m�1K�	Mr)r�r�r�r�)r?r@rArBr�r�r�r�rr�r�r��AttributeErrorrrrr+r9rCrDrEs@r
r�r��s�����C�<�=�N��Y��	,� �	,��Y�� � � ��^�$�(�%�(�<�^�$��%��1�
	8�M�Mrr�c�`�\sQsQsnQsQsQs\\QQ5Q2s	Qs
\\Q	Q5Q
2s\\QQ5Q2s
\\Q
Q5Q2sQsQsQsQsQsQsQsQsQsQsQsUsP!)�AggregateTests�Oc
�F�[OQ2UmUOO2oUO	Q2UO	QQ]QP[Q212UO
2UOOQ][2UOOQ][2UOOQ][2UOOQ	][2UOOQ
][2UOOQ][2UOOQP[2UOOQ
][2UOOQ][ 2P!)r�z�
            create table test(
                t text,
                i integer,
                f float,
                n,
                b blob
                )
            z6insert into test(t, i, f, n, b) values (?, ?, ?, ?, ?)r
rr#�nostep�
nofinalize�excInit�excStep�excFinalize�	checkType�
checkTypes�mysum�aggtxt)r�r�r�r�r�r�r��create_aggregater4rHrQr[rcrkr�r�r�rs& r
r��AggregateTests.setUpPs)���>�>�*�-����h�h�o�o�������	�	���L�
�A�t�T�:�g�#6�8�	:��	�	�����!�!�(�A�z�:����!�!�,��>�B����!�!�)�Q�0C�D����!�!�)�Q�0C�D����!�!�-��4K�L����!�!�+�q�-�@����!�!�,��N�C����!�!�'�1�g�6����!�!�(�A�x�8rc�<�UOO2P!r r�r6s&r
r��AggregateTests.tearDownjr�rc���UO[OQ29^tt^2UOO	QQ[
2PPP2P!)%fhP!9h)r�r�r�)r�r�r�r�r�r�r6s&r
�test_aggr_error_on_create�(AggregateTests.test_aggr_error_on_createmsA��
�
#�
#�F�$;�$;�Z�
H�
H��H�H�$�$�U�D�'�:�I�
H�
H�
H�r�r4rc�.�UOO2oUO[O29^tt^2oUOQ2PPP2UO
[WO2Q2P!)%fhK79h)zselect nostep(t) from testz2user-defined aggregate's 'step' method not defined)	r�r�rr�r�r�r�rrrrs&  r
�test_aggr_no_step� AggregateTests.test_aggr_no_stepqsc���h�h�o�o���
�
�
�v�6�6�
7�
7�2��K�K�4�5�8�����R�\�\�*�M�	O�8�
7�s�B�B	�
B	c��UOO2oQoUO[OU29^tt^2UOQ2UO
2]*oPPP2P!)%fhP!9h)z6user-defined aggregate's 'finalize' method not definedzselect nofinalize(t) from test)r�r�r�r�r�r�r�)r7r�r�rns&   r
�test_aggr_no_finalize�$AggregateTests.test_aggr_no_finalizeys]���h�h�o�o���F��
�
#�
#�F�$;�$;�S�
A�
A��K�K�8�9��,�,�.��#�C�B�
A�
A�
A�s�)A9�9B
	�B
	rQc�\�UOO2oUO[O29^tt^2oUOQ2UO
2]*oPPP2UO[WO2Q2P!)%fhK79h)zselect excInit(t) from testz7user-defined aggregate's '__init__' method raised errorr�r7r�rrns&   r
�test_aggr_exception_in_init�*AggregateTests.test_aggr_exception_in_init�sr���h�h�o�o���
�
�
�v�6�6�
7�
7�2��K�K�5�6��,�,�.��#�C�8�	
����R�\�\�*�,e�f�8�
7���)B�B+	�$B+	r[c�\�UOO2oUO[O29^tt^2oUOQ2UO
2]*oPPP2UO[WO2Q2P!)%fhK79h)zselect excStep(t) from testz3user-defined aggregate's 'step' method raised errorrrWs&   r
�test_aggr_exception_in_step�*AggregateTests.test_aggr_exception_in_step�sr���h�h�o�o���
�
�
�v�6�6�
7�
7�2��K�K�5�6��,�,�.��#�C�8�	
����R�\�\�*�,a�b�8�
7�rZrcc�\�UOO2oUO[O29^tt^2oUOQ2UO
2]*oPPP2UO[WO2Q2P!)%fhK79h)zselect excFinalize(t) from testz7user-defined aggregate's 'finalize' method raised errorrrWs&   r
�test_aggr_exception_in_finalize�.AggregateTests.test_aggr_exception_in_finalize�sr���h�h�o�o���
�
�
�v�6�6�
7�
7�2��K�K�9�:��,�,�.��#�C�8�	
����R�\�\�*�,e�f�8�
7�rZc���UOO2oUOQQ[212UO	2]*oUOU]2P!)zselect checkTypes('str', ?, ?)r
)r�r�r�rrr�r�r�s&  r
�test_aggr_check_param_str�(AggregateTests.test_aggr_check_param_str�sG���h�h�o�o������4�u�c�e�n�E��l�l�n�Q�������a� rc��UOO2oUOQQ2UO2]*oUO	U]2P!)zselect checkType('int', ?)rr	r�s&  r
�test_aggr_check_param_int�(AggregateTests.test_aggr_check_param_int�sA���h�h�o�o������0�%�8��l�l�n�Q�������a� rc��UOO2oUOQQ2UO2]*oUO	U]2P!)zselect checkTypes('int', ?, ?))r�r	r�s&  r
�test_aggr_check_params_int�)AggregateTests.test_aggr_check_params_int�sA���h�h�o�o������4�h�?��l�l�n�Q�������a� rc��UOO2oUOQQ2UO2]*oUO	U]2P!)zselect checkType('float', ?)rr	r�s&  r
�test_aggr_check_param_float�*AggregateTests.test_aggr_check_param_float�sA���h�h�o�o������2�G�<��l�l�n�Q�������a� rc��UOO2oUOQQ2UO2]*oUO	U]2P!)zselect checkType('None', ?)r r	r�s&  r
�test_aggr_check_param_none�)AggregateTests.test_aggr_check_param_none�sA���h�h�o�o������1�7�;��l�l�n�Q�������a� rc���UOO2oUOQ[Q212UO	2]*oUOU]2P!)zselect checkType('blob', ?)r#)r�r�r�r�r�r�r�s&  r
�test_aggr_check_param_blob�)AggregateTests.test_aggr_check_param_blob�sI���h�h�o�o������1�J�w�4G�3I�J��l�l�n�Q�������a� rc��UOO2oUOQ2UOQ,QN2UOQ2UO	2]*oUOU]<2P!)zdelete from testzinsert into test(i) values (?)zselect mysum(i) from test))�
)�)�)r�r�r�r�r�r�r�s&  r
�test_aggr_check_aggr_sum�'AggregateTests.test_aggr_check_aggr_sum�s\���h�h�o�o������&�'����8�:O�P����/�0��l�l�n�Q�������b�!rc��UOOQ2oUO2]*oUOU2P!)z1select mysum(i) from (select 1 as i) where i == 0)r�r�r�r
r�s&  r
�test_aggr_no_match�!AggregateTests.test_aggr_no_match�s5���h�h���R�S���l�l�n�Q������#�rc	�4�UOO2oQFDaoUOUQ59^tt^2UOQU12UO	2]*oUOV22PPP2Jc	P!)%fhJx9h)r
r�zselect aggtxt(?) from test)r
r)r�r�r�r�r�r�)r7r�r�rns&   r
�test_aggr_text�AggregateTests.test_aggr_text�sn���h�h�o�o���$�C����#��&�&����8�3�&�A��l�l�n�Q�'��� � ��*�'�&�%�&�&�&�s�<B	�B
�B
c���UO[Q29^tt^2UOOQ][Q5PPP2P!)%fhP!9h)r��test)�aggregate_class)r�r^r�rIr�r6s&r
�test_agg_keyword_args�$AggregateTests.test_agg_keyword_args�sH��
�
#�
#�I�6�8�8��H�H�%�%�f�a��%�J�8�8�8�8�s�#A
�
A	�A	r�)r?r@rArBr�r�rNrr;rQrTr�rXr\r_rbrerirlrorrrxr{r~r�rCrDrEs@r
r=r=Os�����9�4�;��^�|�<�O�=�O�$��&�2G�H�g�I�g��&�2G�H�c�I�c��&�2K�L�g�M�g�!�!�!�!�!�!�"��
+�K�Krr=c�V`�\sQsQsn\Q2sQsQsQsQs	Qs
QsQ	sUs
P!)
�AuthorizerTests��c��U[O6wc[O!UQ6XfUQ6Xc[O![O!��c2�t2)r��
SQLITE_SELECT�SQLITE_DENY�	SQLITE_OK��action�arg1�arg2�dbname�sources&&&&&r
�
authorizer_cb�AuthorizerTests.authorizer_cb�sA���V�)�)�)��%�%�%��4�<�4�4�<��%�%�%����rc���[OQ2UmUOOQ2UOO	Q2UOOUO2P!)r�z�
            create table t1 (c1, c2);
            create table t2 (c1, c2);
            insert into t1 (c1, c2) values (1, 2);
            insert into t2 (c1, c2) values (4, 5);
            zselect c2 from t2)r�r�r��
executescriptr��set_authorizerr�r6s&r
r��AuthorizerTests.setUp�sV���>�>�*�-�������� �	�	
�����,�-������� 2� 2�3rc�<�UOO2P!r r�r6s&r
r��AuthorizerTests.tearDown�r�rc��UO[O29^tt^2oUOO	Q2PPP2UOQ[
WO22P!)%fhK79h)�select * from t2�
prohibited�rr��
DatabaseErrorr�r��assertInrrr�r7rs& r
�test_table_access�!AuthorizerTests.test_table_access�sS��
�
�
�v�3�3�
4�
4���H�H���/�0�5��
�
�l�C����$5�6�5�
4���A4�4B	�=B	c��UO[O29^tt^2oUOO	Q2PPP2UOQ[
WO22P!)%fhK79h)�select c2 from t1r�r�r�s& r
�test_column_access�"AuthorizerTests.test_column_access�sS��
�
�
�v�3�3�
4�
4���H�H���0�1�5��
�
�l�C����$5�6�5�
4�r�c��UOOP2UOOQ2UOOQ2P!)Nr�r�)r�r�r�r6s&r
�test_clear_authorizer�%AuthorizerTests.test_clear_authorizer�s:��������%������+�,������,�-rc��UO[Q29^tt^2UOOQQ5PPP2P!)%fhP!9h)z#takes exactly 1 positional argumentc��P!r rrrr
r��>AuthorizerTests.test_authorizer_keyword_args.<locals>.<lambda>s��r)�authorizer_callback)r�r^r�r�r6s&r
�test_authorizer_keyword_args�,AuthorizerTests.test_authorizer_keyword_argssD��
�
#�
#�I�5�7�7��H�H�#�#��#�E�7�7�7�7�s�A�A	�A	r�)r?r@rArB�staticmethodr�r�r�r�r�r�r�rCrDrEs@r
r�r��s<����� �� �4��7�
7�
.�
F�Frr�c�``�\sQsQsn\Q2s\\QQ5U1Qk2s\\QQ5U1Qk2s	Qs
UsU9s!)�AuthorizerRaiseExceptionTests�c��U[O6wc[gUQ6XfUQ6Xc[g[O!r�)r�r��
ValueErrorr�r�s&&&&&r
r��+AuthorizerRaiseExceptionTests.authorizer_cbs5���V�)�)�)����4�<�4�4�<������rr�rc�&:�[RU_2P!r ��superr��r7�	__class__s&�r
r��/AuthorizerRaiseExceptionTests.test_table_access����
��!�#rc�&:�[RU_2P!r r�r�s&�r
r��0AuthorizerRaiseExceptionTests.test_column_accessr�rr)
r?r@rArBr�r�rr�r�r�rCrD�
__classcell__)r�rFs@@r
r�r�sR����� �� ��Z�?�;�$�<�$��Z�?�;�$�<�$�$rr�c�2`�\sQsQsn\Q2sQsUsP!)�AuthorizerIllegalTypeTests�c�r�U[O6wcQ!UQ6XfUQ6XcQ![O!)r�r�r��r�r�r�r�s&&&&&r
r��(AuthorizerIllegalTypeTests.authorizer_cbs/���V�)�)�)���4�<�4�4�<�����rr�r?r@rArBr�r�rCrDrEs@r
r�r������� �� rr�c�2`�\sQsQsn\Q2sQsUsP!)�AuthorizerLargeIntegerTests� c�r�U[O6wcQ!UQ6XfUQ6XcQ![O!)r�r�r�r�r�r�s&&&&&r
r��)AuthorizerLargeIntegerTests.authorizer_cb!s3���V�)�)�)��L��4�<�4�4�<��L����rrr�rEs@r
r�r� r�rr��__main__)r��r)1r�r��sqlite3r��
unittest.mockrr�test.supportrr�utilrrrrrrrrr!r$r(r,r/r2r4rHrQr[rcrkr�r�r��TestCaser�r��	Exceptionr��skipIf�sqlite_version_infor�r=r�r�r�r�r?�mainrrr
�<module>r�s���0���%�/�+�!��������������
�
�
�
�����
�
�������YC�H�%�%�YC�x�� 	�	�	�
����+�+�j�8�2�4�HM�(�+�+�HM�4�HM�VEK�X�&�&�EK�P,F�h�'�'�,F�^$�O�$�" �� � �/� ��z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit