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:/Python313/Lib/test/test_sqlite3/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/test_sqlite3/__pycache__/test_userfunctions.cpython-313.opt-2.pyc
�

��i/z����SSKrSSKrSSKrSSKJrJr SSKJrJ	r	 SSK
JrJr SSK
J
r
 SrSrS	rS
rSrSrS
rSrSrSrSr"SS5r"SS5r"SS5r"SS5r"SS5r"SS5r"SS5r"S S!5r "S"S#5r!"S$S%\RD5r#"S&S'5r$"S(S)\%5r&\RN"\RPS*:S+5"S,S-\RD55r)"S.S/\RD5r*"S0S1\RD5r+"S2S3\+5r,"S4S5\+5r-"S6S7\+5r.\/S8:Xa\R`"5 gg)9�N)�Mock�patch)�
bigmemtest�
gc_collect�)�cx_limit�memory_database)�with_tracebacksc��g)N�foo�r
��9C:\Python313\\Lib\test\test_sqlite3\test_userfunctions.py�func_returntextr#���rc��g)N�12r
r
rr�func_returntextwithnullr%s��rc��g)N�barr
r
rr�func_returnunicoder'rrc��g�N�*r
r
rr�func_returnintr)s��
rc��g)N���Q�	@r
r
rr�func_returnfloatr+���rc��g�Nr
r
rr�func_returnnullr"-rrc��g)N�blobr
r
rr�func_returnblobr%/s��rc��g)N�r
r
rr�func_returnlonglongr(1rrc��SS- g�N�rr
r
rr�func_raiseexceptionr,3s	���a�Crc��[er!)�MemoryErrorr
rr�func_memoryerrorr/5s��
�rc��[er!)�
OverflowErrorr
rr�func_overflowerrorr27s��
�rc� �\rSrSrSrSrSrg)�
AggrNoStep�:c��gr!r
��selfs r�__init__�AggrNoStep.__init__;���rc��g�Nrr
r7s r�finalize�AggrNoStep.finalize>s��rr
N)�__name__�
__module__�__qualname__�__firstlineno__r9r>�__static_attributes__r
rrr4r4:s��
�rr4c� �\rSrSrSrSrSrg)�AggrNoFinalize�Ac��gr!r
r7s rr9�AggrNoFinalize.__init__Br;rc��gr!r
�r8�xs  r�step�AggrNoFinalize.stepEr;rr
N)r@rArBrCr9rMrDr
rrrFrFAs��
�
rrFc�&�\rSrSrSrSrSrSrg)�AggrExceptionInInit�Hc��SS- gr*r
r7s rr9�AggrExceptionInInit.__init__I�	��	�!�rc��gr!r
rKs  rrM�AggrExceptionInInit.stepLr;rc��gr!r
r7s rr>�AggrExceptionInInit.finalizeOr;rr
N�r@rArBrCr9rMr>rDr
rrrPrPHs���
�
rrPc�&�\rSrSrSrSrSrSrg)�AggrExceptionInStep�Rc��gr!r
r7s rr9�AggrExceptionInStep.__init__Sr;rc��SS- gr*r
rKs  rrM�AggrExceptionInStep.stepVrTrc��grr
r7s rr>�AggrExceptionInStep.finalizeYs��rr
NrYr
rrr[r[Rs��
��rr[c�&�\rSrSrSrSrSrSrg)�AggrExceptionInFinalize�\c��gr!r
r7s rr9� AggrExceptionInFinalize.__init__]r;rc��gr!r
rKs  rrM�AggrExceptionInFinalize.step`r;rc��SS- gr*r
r7s rr>� AggrExceptionInFinalize.finalizecrTrr
NrYr
rrrdrd\s��
�
�rrdc�&�\rSrSrSrSrSrSrg)�
AggrCheckType�fc��SUlgr!��valr7s rr9�AggrCheckType.__init__gs	����rc��[[[[S5[S.n[X1[U5L5Ulg�N)�str�int�float�None�blob�rurvrw�type�bytesrq)r8�	whichTyperq�theTypes    rrM�AggrCheckType.stepjs1���c�E�4��:� �"���w�)�T�#�Y�6�7��rc��UR$r!rpr7s rr>�AggrCheckType.finalizeo����x�x�rrpNrYr
rrrmrmfs���8�
rrmc�&�\rSrSrSrSrSrSrg)�AggrCheckTypes�rc��SUlg�Nrrpr7s rr9�AggrCheckTypes.__init__ss	����rc	��[[[[S5[S.nUH.nU=R
[X1[U5L5-
slM0 grtrz)r8r}�valsr~rqs     rrM�AggrCheckTypes.stepvsB���c�E�4��:� �"���C��H�H��G�.�$�s�)�;�<�<�H�rc��UR$r!rpr7s rr>�AggrCheckTypes.finalize|r�rrpNrYr
rrr�r�rs���=�rr�c�&�\rSrSrSrSrSrSrg)�AggrSum�c��SUlg)N�rpr7s rr9�AggrSum.__init__�s	����rc�.�U=RU-
slgr!rp)r8rqs  rrM�AggrSum.step�s�����C��rc��UR$r!rpr7s rr>�AggrSum.finalize�r�rrpNrYr
rrr�r�s����rr�c�&�\rSrSrSrSrSrSrg)�AggrText�c��SUlg)N���txtr7s rr9�AggrText.__init__�s	����rc�,�URU-Ulgr!r�)r8r�s  rrM�
AggrText.step�s���8�8�c�>��rc��UR$r!r�r7s rr>�AggrText.finalize�r�rr�NrYr
rrr�r��s���"�rr�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSr\"\SS9S5r\"\SS9S5r\"\SS9S5rSrSrSrSrSr\"\SS9S5rSr S r!S!r"S"r#S#r$S$r%\"\5S%5r&\"\'S&S'5S(5r(\)RT"\+RXS):�S*5\-"S+S,S-S.9S/55r.\)RT"\+RXS):�S*5\-"S+S0S-S.9S155r/S2r0S3r1S4r2g5)6�
FunctionTests�c�r�[R"S5UlURRSS[5 URRSS[
5 URRSS[5 URRSS[5 URRSS[5 URRSS[5 URRS	S[5 URRS
S[5 URRSSS5 URRS
SS5 URRSS[5 URRSS[5 URRSS[5 URRSSS5 URRSSS5 URRSSS5 URRS5 g)N�:memory:�
returntextr�returntextwithnull�
returnunicode�	returnint�returnfloat�
returnnull�
returnblob�returnlonglong�	returnnanc��[S5$)N�nan)rwr
rr�<lambda>�%FunctionTests.setUp.<locals>.<lambda>�s���u�r�return_noncont_blobc�$�[S5SSS2$)Nr$�)�
memoryviewr
rrr�r��s���G�)<�S�q�S�)Ar�raiseexception�memoryerror�
overflowerror�isblobrc�"�[U[5$r!)�
isinstancer|�rLs rr�r��s��
�1�e�8Lr�isnonec�
�USL$r!r
r�s rr�r��s���T�	r�spam���c��[U5$r!)�lenr�s rr�r��s���A�rzcreate table test(t text))�sqlite�connect�con�create_functionrrrrrr"r%r(r,r/r2�executer7s 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�5rc�8�URR5 gr!�r��closer7s r�tearDown�FunctionTests.tearDown���������rc��UR[R5 URR	SSS5 SSS5 g!,(df   g=f)N�bla���c��SU-$�Nr�r
r�s rr��9FunctionTests.test_func_error_on_create.<locals>.<lambda>�s��A�a�Cr)�assertRaisesr��OperationalErrorr�r�r7s r�test_func_error_on_create�'FunctionTests.test_func_error_on_create�s8��
�
�
�v�6�6�
7��H�H�$�$�U�D�-�@�8�
7�
7�s�A�
Ac�f�[RnSn[URUSS9 URR	S5 UR[RU5 URR	S5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nztoo many arguments on functionr)�category�limitzselect abs(-1)zselect max(1, 2))r��SQLITE_LIMIT_FUNCTION_ARGrr�r��assertRaisesRegexr�)r8r��msgs   r�test_func_too_many_args�%FunctionTests.test_func_too_many_args�s|���3�3��.��
�d�h�h���
;��H�H���-�.��'�'��(?�(?��E���� � �!3�4�F�<�
;�E�E��<�
;�s#�<B"�$B�B"�
B	�B"�"
B0c���SnU"5nU[5S'URRSSU5 URR5nUR	S5 g)Nc��SnU$)Nc��gr=r
r
rr�f�=FunctionTests.test_func_ref_count.<locals>.getfunc.<locals>.f�s��rr
)r�s r�getfunc�2FunctionTests.test_func_ref_count.<locals>.getfunc�s��
��Hrr�reftestrzselect reftest())�globalsr�r��cursorr�)r8r�r��curs    r�test_func_ref_count�!FunctionTests.test_func_ref_count�sO��	�
�I����	�%����� � ��A�q�1��h�h�o�o������&�'rc���URR5nURS5 UR5SnUR	[U5[5 UR	US5 g)Nzselect returntext()rr�r�r�r��fetchone�assertEqualr{ru�r8r�rqs   r�test_func_return_text�#FunctionTests.test_func_return_text�sS���h�h�o�o������)�*��l�l�n�Q�������c��C�(�����e�$rc���URR5nURS5R5SnUR	[U5[5 UR	US5 g)Nzselect returntextwithnull()rrr�)r8r��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�'rc���URR5nURS5 UR5SnUR	[U5[5 UR	US5 g)Nzselect returnunicode()rrr�r�s   r�test_func_return_unicode�&FunctionTests.test_func_return_unicode�sS���h�h�o�o������,�-��l�l�n�Q�������c��C�(�����e�$rc���URR5nURS5 UR5SnUR	[U5[5 UR	US5 g)Nzselect returnint()rr)r�r�r�r�r�r{rvr�s   r�test_func_return_int�"FunctionTests.test_func_return_int�sS���h�h�o�o������(�)��l�l�n�Q�������c��C�(�����b�!rc��URR5nURS5 UR5SnUR	[U5[5 US:dUS:�aURS5 gg)Nzselect returnfloat()rg�&1�	@gT㥛� 	@zwrong value)r�r�r�r�r�r{rw�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�$�&rc���URR5nURS5 UR5SnUR	[U5[S55 UR	US5 g)Nzselect returnnull()r)r�r�r�r�r�r{r�s   r�test_func_return_null�#FunctionTests.test_func_return_null�sW���h�h�o�o������)�*��l�l�n�Q�������c��D��J�/�����d�#rc���URR5nURS5 UR5SnUR	[U5[5 UR	US5 g)Nzselect returnblob()rr$)r�r�r�r�r�r{r|r�s   r�test_func_return_blob�#FunctionTests.test_func_return_blob�sS���h�h�o�o������)�*��l�l�n�Q�������c��E�*�����g�&rc��URR5nURS5 UR5SnUR	US5 g)Nzselect returnlonglong()rr'�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�$rc��URR5nURS5 URUR	5S5 g)Nzselect returnnan()r)r�r�r��assertIsNoner��r8r�s  r�test_func_return_nan�"FunctionTests.test_func_return_nan�s8���h�h�o�o������(�)����#�,�,�.��+�,rr,��namec�6�URR5nUR[R5nURS5 UR
5 SSS5 UR[WR5S5 g!,(df   N4=f)Nzselect raiseexception()�&user-defined function raised exception�
r�r�r�r�r�r�r�r�ru�	exception�r8r��cms   r�test_func_exception�!FunctionTests.test_func_exceptionsh���h�h�o�o���
�
�
�v�6�6�
7�2��K�K�1�2��L�L�N�8�	
����R�\�\�*�,T�U�8�
7�s�"B
�

Br/c���URR5nUR[5 UR	S5 UR5 SSS5 g!,(df   g=f)Nzselect memoryerror())r�r�r�r.r�r�rs  r�test_func_memory_error�$FunctionTests.test_func_memory_error	sB���h�h�o�o���
�
�
�{�
+��K�K�.�/��L�L�N�,�
+�
+�s�"A�
A)r2c���URR5nUR[R5 URS5 UR
5 SSS5 g!,(df   g=f)Nzselect overflowerror())r�r�r�r��	DataErrorr�r�rs  r�test_func_overflow_error�&FunctionTests.test_func_overflow_errorsH���h�h�o�o���
�
�
�v�/�/�
0��K�K�0�1��L�L�N�1�
0�
0�s�"A%�%
A3c��URR5nURSS5 UR5SnUR	US5 g)Nzselect spam(?, ?))rr�rr�rr�s   r�test_any_arguments� FunctionTests.test_any_argumentssA���h�h�o�o������'��0��l�l�n�Q�������a� rc�~�URRS5nURUR5S5 g)Nzselect isblob(x'')r)r�r��
assertTruer�rs  r�test_empty_blob�FunctionTests.test_empty_blobs.���h�h���3�4���������q�)�*rc��URRS[S545nURUR	5S5 g)Nzselect isnone(?)r�r)r�r�rwr,r�rs  r�test_nan_float�FunctionTests.test_nan_float!s6���h�h���1�E�%�L�?�C���������q�)�*rc�`�SnUR[XRRSS5 g)Nz1Python int too large to convert to SQLite INTEGER�select spam(?))� )r�r1r�r�)r8�errs  r�test_too_large_int� FunctionTests.test_too_large_int&s(��A�����}�c�8�8�3C�3C�/��	=rc
�~�UR[SURRS[	S5SSS245 g)Nz%underlying buffer is not C-contiguousr3r$r�)r��BufferErrorr�r�r�r7s r�test_non_contiguous_blob�&FunctionTests.test_non_contiguous_blob+s9�����{�F�#�x�x�/�/�1A� *�7� 3�C�a�C� 8�:�	<rzbuffer.*contiguous)�regexc���UR[R5 URR	S5nUR5 SSS5 g!,(df   g=f)Nzselect return_noncont_blob())r�r�r�r�r�r�rs  r�test_return_non_contiguous_blob�-FunctionTests.test_return_non_contiguous_blob1s@��
�
�
�v�6�6�
7��(�(�"�"�#A�B�C��L�L�N�8�
7�
7�s�,A�
A#c�^�UR[SURRSS5 g)N�surrogates not allowedr3)u��)r��UnicodeEncodeErrorr�r�r7s r�test_param_surrogates�#FunctionTests.test_param_surrogates7s)�����1�3K�#�x�x�/�/�1A�0�	2rc��^�/mU4SjnURRSSU5 S[4S[4S[4S[4S[4[S	5[4S
[4S[4S[4S
[
4[
[S55[
4[S
5[
4S[S54/
nUH2up4URRSU45nUR5 M4 URUT5 g)Nc�>>�TRU[U545 gr!)�appendr{)�arg�resultss �r�
append_result�5FunctionTests.test_func_params.<locals>.append_result>s����N�N�C��c��+�,r�test_paramsrrr�l�{�C	lr�inf�textruˢqˡⁱᵗᵉr$r�zselect test_params(?))
r�r�rvrwrur|�	bytearray�ranger�r{r�r�r�)r8rJ�datasetrq�_r�rIs      @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��	
����'�*rc��[SS9nURRSSUSS9 UR[R
5 URR
S5 SSS5 g!,(df   g=f)N��return_value�nondeterministicrF��
deterministicz>create index t on test(t) where nondeterministic() is not null)rr�r�r�r�r�r��r8�mocks  r�test_func_non_deterministic�)FunctionTests.test_func_non_deterministic\s[����&����� � �!3�Q��E� �R�
�
�
�v�6�6�
7��H�H���]�^�8�
7�
7�s�A*�*
A8c���[SS9nURRSSUSS9 URRS5 g![R
a UR
S5 gf=f)NrVrZrTrYz;create index t on test(t) where deterministic() is not nullz/Unexpected failure while creating partial index)rr�r�r�r�r�rr[s  r�test_func_deterministic�%FunctionTests.test_func_deterministicbsd����&����� � ��!�T�� �N�	I��H�H���Z�[���&�&�	I��I�I�G�H�	I�s�A�%A+�*A+c��UR[5 URRSS[S5 SSS5 g!,(df   g=f)NrZrT)r��	TypeErrorr�r�rvr7s r�$test_func_deterministic_keyword_only�2FunctionTests.test_func_deterministic_keyword_onlyjs4��
�
�
�y�
)��H�H�$�$�_�a��d�C�*�
)�
)�s�#A�
Ac���Sn[5nURSSU5 U"S5nAAU/nURU5 AA[5 SSS5 g!,(df   g=f)Nc��gr!r
)�ts r�md5sum�=FunctionTests.test_function_destructor_via_gc.<locals>.md5sumqs��r�md5rz(create table lang (name, first_appeared))r	r�rGr)r8ri�destrL�ys     r�test_function_destructor_via_gc�-FunctionTests.test_function_destructor_via_gcns[��	��
�$�� � ���6�2��?�@�A�����A�
�H�H�Q�K��!��L��
�
�s�>A�
A#c�(�URR5nSnSH^nURRSSU4Sj5 UR[R
U5 UR
S5 SSS5 M` g!,(df   Mr=f)N�string or blob too big)ll����l�largeintrc��U$r!r
)�values rr��>FunctionTests.test_func_return_too_large_int.<locals>.<lambda>�s��rzselect largeint())r�r�r�r�r�r%r�)r8r�r�rts    r�test_func_return_too_large_int�,FunctionTests.test_func_return_too_large_intsl���h�h�o�o���&��+�E��H�H�$�$�Z���4M�N��'�'��(8�(8�#�>����/�0�?�>�,�>�>�s�#B�
B	rA�chrc�&�URR5nURRSS[5 SH>nUR	[
R5 URSU45 SSS5 M@ g!,(df   MR=f)N�pychrr)i��i��zselect pychr(?))r�r�r�rxr�r�r�r�)r8r�rts   r�%test_func_return_text_with_surrogates�3FunctionTests.test_func_return_text_with_surrogates�sf���h�h�o�o������ � ��!�S�1�#�E��"�"�6�#:�#:�;����-��x�8�<�;�$�;�;�s� B�
B	�zrequires 64bit platformr'�F)�size�memuse�dry_runc�"�URR5nSH]nURRSSU4Sj5 UR[R
5 UR
S5 SSS5 M_ g!,(df   Mq=f)N�i���r'�	largetextrc��SU-$)N�br
�rs rr��?FunctionTests.test_func_return_too_large_text.<locals>.<lambda>�s��s�T�zrzselect largetext()�r�r�r�r�r�r%r��r8rr�s   r�test_func_return_too_large_text�-FunctionTests.test_func_return_too_large_text�sg���h�h�o�o���"�D��H�H�$�$�[�!��5Q�R��"�"�6�#3�#3�4����0�1�5�4�#�4�4��� A?�?
B	r�c�"�URR5nSH]nURRSSU4Sj5 UR[R
5 UR
S5 SSS5 M_ g!,(df   Mq=f)Nr��	largeblobrc��SU-$)N�br
r�s rr��?FunctionTests.test_func_return_too_large_blob.<locals>.<lambda>�s��t�d�{rzselect largeblob()r�r�s   r�test_func_return_too_large_blob�-FunctionTests.test_func_return_too_large_blob�sg���h�h�o�o���"�D��H�H�$�$�[�!��5R�S��"�"�6�#3�#3�4����0�1�5�4�#�4�4�r�c�^�TRRSSU4Sj5 SnTR[RUTRR
S5 g)N�	badreturnrc�>�T$r!r
r7s�rr��>FunctionTests.test_func_return_illegal_value.<locals>.<lambda>�s���rrzselect badreturn())r�r�r�r�r�r�)r8r�s` r�test_func_return_illegal_value�,FunctionTests.test_func_return_illegal_value�sG������ � ��a��>�6�����v�6�6��#�x�x�/�/�1E�	Grc��SnSnUR[U5nURRSSUS9 SSS5 UR	WR
[5 UR[U5nURRSSUS9 SSS5 UR	UR
[5 UR[U5nURRSSUS9 SSS5 UR	UR
[5 g!,(df   N�=f!,(df   N�=f!,(df   NQ=f)Nz�Passing keyword arguments 'name', 'narg' and 'func' to _sqlite3.Connection.create_function\(\) is deprecated. Parameters 'name', 'narg' and 'func' will become positional-only in Python 3.15.c��gr!r
r
rr�noop�2FunctionTests.test_func_keyword_args.<locals>.noop�s��rr�r)�func)�nargr�)rr�r�)�assertWarnsRegex�DeprecationWarningr�r�r��filename�__file__)r8r<r�rs    r�test_func_keyword_args�$FunctionTests.test_func_keyword_args�s���
/�	�	��
"�
"�#5�u�
=���H�H�$�$�V�Q�T�$�:�>�������h�/�
�
"�
"�#5�u�
=���H�H�$�$�V�!�$�$�?�>�������h�/�
�
"�
"�#5�u�
=���H�H�$�$�&�q�t�$�D�>�������h�/�>�
=��>�
=��>�
=�s#�D�6D&�D7�
D#�&
D4�7
E�r�N)3r@rArBrCr�r�r�r�r�r�r�r�rrr	rrrr
�ZeroDivisionErrorrr.r"r1r&r)r-r0r6r:r9r>rCrSr]r`rdrnrvrBr{�unittest�
skipUnless�sys�maxsizerr�r�r�r�rDr
rrr�r��s���6�.�A�6�
(�%�(�%�"�%�$�'�%�-�
�&�-B�C�V�D�V��[�'9�:��;���]�)=�>��?��!�+�+�
=�
<��[�(<�=��>��
2�
+�@_�I�D��"�]�#�1�$�1��'�)A�5�I�9�J�9�������u�,�.G�H��U�1�e�4�2�5�I�2�������u�,�.G�H��U�1�e�4�2�5�I�2�G�0rr�c�2�\rSrSrSrSrSrSrSrSr	g)	�WindowSumInti�c��SUlgr���countr7s rr9�WindowSumInt.__init__�s	����
rc�.�U=RU-
slgr!r��r8rts  rrM�WindowSumInt.step�����
�
�e��
rc��UR$r!r�r7s rrt�WindowSumInt.value�����z�z�rc�.�U=RU-slgr!r�r�s  r�inverse�WindowSumInt.inverse�r�rc��UR$r!r�r7s rr>�WindowSumInt.finalize�r�rr�N)
r@rArBrCr9rMrtr�r>rDr
rrr�r��s������rr�c��\rSrSrSrg)�	BadWindowi�r
N)r@rArBrCrDr
rrr�r��s��rr�)r~�rzRequires SQLite 3.25.0 or newerc��\rSrSrSrSrSrSr\"\	5S5r
\"\	5S5r\"\5S5r
\"\5S	5rS
rSrSrS
rg)�WindowFunctionTestsi�c��[R"S5UlURR5Ul/SQnUR URRS5 URR
SU5 SSS5 /SQUlSUlURRSS[5 g!,(df   N@=f)	Nr�))�a�)r�r+)�cr~)�d�)�erzcreate table test(x, y)zinsert into test values(?, ?)))r��	)r��)r��)r�r�)r�r�z�
            select x, %s(y) over (
                order by x rows between 1 preceding and 1 following
            ) as sum_y
            from test order by x
        �sumintr)r�r�r�r�r�r��executemany�expected�query�create_window_functionr�)r8�valuess  rr��WindowFunctionTests.setUp�s����>�>�*�-����8�8�?�?�$���
���X�X��H�H���6�7��H�H� � �!@�&�I��
��
���
�	
���'�'��!�\�B�!�X�s�8B=�=
Cc�l�URR5 URR5 gr!)r�r�r�r7s rr��WindowFunctionTests.tearDown�s�������������rc��URRURS-5 URURR	5UR
5 g)Nr�)r�r�r�r��fetchallr�r7s r�test_win_sum_int�$WindowFunctionTests.test_win_sum_int�s>����������h�.�/�������*�*�,�d�m�m�<rc�z�UR[RURRSS[
5 g)N�
shouldfailr�)r�r��ProgrammingErrorr�r�r�r7s r�test_win_error_on_create�,WindowFunctionTests.test_win_error_on_create�s,�����&�1�1��(�(�9�9�&��l�	<rc	�,�SH�nURUS9 [R"[U[S9 SU3nUR
R
US[5 SUS3nUR[RU5 URRURU-5 URR5 SSS5 SSS5 SSS5 M� g!,(df   N#=f!,(df   N,=f!,(df   GM=f)N)r9rMrtr�)�meth��side_effect�exc_r�'z' method raised error)�subTestr�objectr�r�r�r�r�r�r�r�r�r�r�)r8r�rr�s    r�test_win_exception_in_method�0WindowFunctionTests.test_win_exception_in_methods���:�D����4��(��\�\�,��)�L�!�$��=�D��H�H�3�3�D�!�\�J��d�V�#8�9�C��/�/��0G�0G��M����(�(����d�):�;����)�)�+�N�	M�)�(�;�N�M��	M�L��)�(�s<�D�A
C2�AC!	�C2�D�!
C/
�+C2�2
D�<D�
D	c�>�[R"[S[S9 SnURRUS[5 URRURU-5 URR5 SSS5 g!,(df   g=f)Nr>r��exception_in_finalizer)
rr�r�r�r�r�r�r�r�r�)r8rs  r�test_win_exception_in_finalize�2WindowFunctionTests.test_win_exception_in_finalizesg��
�\�\�,�
�	�
J�*�D��H�H�+�+�D�!�\�B��H�H���T�Z�Z�$�.�/��H�H����	K�
J�
J�s�A&B�
Bc��"SS5n"SS5n"SS5nSU4SU4S	U44nUH�upVURXVS
9 SU3nURRUSU5 UR[R
S
US35 URRURU-5 URR5 SSS5 SSS5 M� g!,(df   N=f!,(df   M�=f)Nc�&�\rSrSrSrSrSrSrg)�AWindowFunctionTests.test_win_missing_method.<locals>.MissingValueic��gr!r
rKs  rrM�FWindowFunctionTests.test_win_missing_method.<locals>.MissingValue.step���trc��gr!r
rKs  rr��IWindowFunctionTests.test_win_missing_method.<locals>.MissingValue.inverse���$rc��grr
r7s rr>�JWindowFunctionTests.test_win_missing_method.<locals>.MissingValue.finalize���rrr
N)r@rArBrCrMr�r>rDr
rr�MissingValuer����#�&�)rr�c�&�\rSrSrSrSrSrSrg)�CWindowFunctionTests.test_win_missing_method.<locals>.MissingInversei c��gr!r
rKs  rrM�HWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse.step!r�rc��grr
r7s rrt�IWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse.value"���Brc��grr
r7s rr>�LWindowFunctionTests.test_win_missing_method.<locals>.MissingInverse.finalize#r�rr
N)r@rArBrCrMrtr>rDr
rr�MissingInverser� r�rrc�&�\rSrSrSrSrSrSrg)�@WindowFunctionTests.test_win_missing_method.<locals>.MissingStepi%c��grr
r7s rrt�FWindowFunctionTests.test_win_missing_method.<locals>.MissingStep.value&rrc��gr!r
rKs  rr��HWindowFunctionTests.test_win_missing_method.<locals>.MissingStep.inverse'r�rc��grr
r7s rr>�IWindowFunctionTests.test_win_missing_method.<locals>.MissingStep.finalize(r�rr
N)r@rArBrCrtr�r>rDr
rr�MissingStepr%s��&�&�)rrrMrtr�)r��clsr�rr�z' method not defined)
r�r�r�r�r�r�r�r�r�r�)r8r�rrrQr�rrs        r�test_win_missing_method�+WindowFunctionTests.test_win_missing_methods���	*�	*�
	*�	*�
	*�	*��[�!�
�l�#�
��'�
��
!�I�D����4��1��d�V�}�����/�/��a��=��+�+�F�,C�,C�./��v�5I�,J�L��H�H�$�$�T�Z�Z�$�%6�7��H�H�%�%�'�L�2�1�!�L�L��2�1�s&�AC0�AC�
C0�
C-�)C0�0
C?	c���"SS5nSnURRUSU5 URRURU-5 URR5 g)Nc�&�\rSrSrSrSrSrSrg)�FWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalizei=c��gr!r
rKs  rrM�KWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize.step>r�rc��grr
r7s rrt�LWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize.value?rrc��gr!r
rKs  rr��NWindowFunctionTests.test_win_missing_finalize.<locals>.MissingFinalize.inverse@r�rr
N)r@rArBrCrMrtr�rDr
rr�MissingFinalizer=s��#�&�&rr�missing_finalizer)r�r�r�r�r�r�)r8rrs   r�test_win_missing_finalize�-WindowFunctionTests.test_win_missing_finalize8sT��
	'�	'�
"�����'�'��a��A���������d�*�+������rc���URRSSS5 UR[RUR
RURS-5 g)Nr�r)r�r�r�r�r�r�r�r�r7s r�test_win_clear_function�+WindowFunctionTests.test_win_clear_functionGsF�����'�'��!�T�:����&�1�1�4�8�8�3C�3C��*�*�x�/�	1rc�V�"SS[5nURVs/sHo"SUSS-4PM nnURRSSU5 URRURS-5 URURR5U5 gs snf)Nc� �\rSrSrSrSrSrg)�AWindowFunctionTests.test_win_redefine_function.<locals>.RedefinediNc�4�U=RUS--
slgr�r�r�s  rrM�FWindowFunctionTests.test_win_redefine_function.<locals>.Redefined.stepOs��4�:�:����#:�:rc�4�U=RUS--slgr�r�r�s  rr��IWindowFunctionTests.test_win_redefine_function.<locals>.Redefined.inversePs��d�j�j�E�A�I�&=�jrr
N)r@rArBrCrMr�rDr
rr�	Redefinedr$Ns��:�=rr)rrr�r�)	r�r�r�r�r�r�r�r�r�)r8r)�vr�s    r�test_win_redefine_function�.WindowFunctionTests.test_win_redefine_functionLs���	>��	>�-1�M�M�:�M�q�q�T�1�Q�4��6�N�M��:����'�'��!�Y�?���������h�.�/�������*�*�,�h�7��	;s�B&c���"SS5nURRSSU5 UR[RSUR
RURS-5 g)Nc�&�\rSrSrSrSrSrSrg)�IWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturniXc��gr!r
r7s rr9�RWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn.__init__Ys��rc��gr!r
rKs  rrM�NWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn.stepZr�rc��g)Nr4r
r7s rrt�OWindowFunctionTests.test_win_error_value_return.<locals>.ErrorValueReturn.value[s��Grr
N)r@rArBrCr9rMrtrDr
rr�ErrorValueReturnr/Xs��$�#�+rr6�err_val_retrrq)r�r�r�r�r%r�r�r�)r8r6s  r�test_win_error_value_return�/WindowFunctionTests.test_win_error_value_returnWsW��	,�	,�
	
���'�'�
�q�:J�K����v�/�/�1I�#�x�x�/�/����m�1K�	Mr)r�r�r�r�N)r@rArBrCr�r�r�r�r
r�r�r��AttributeErrorrrr r+r8rDr
rrr�r��s���C�<�=�<�
�Y��	,� �	,��Y�� � � ��^�$�(�%�(�<�^�$��%��1�
	8�Mrr�c���\rSrSrSrSrSr\"\SS9S5r	Sr
\"\S	S9S
5r\"\SS9S5r
\"\S
S9S5rSrSrSrSrSrSrSrSrSrSrSrg)�AggregateTestsibc
�B�[R"S5UlURR5nUR	S5 UR	SSSSS[S545 UR
5 URRSS	[5 URRS
S	[5 URRSS	[5 URRSS	[5 URRS
S	[5 URRSS[5 URRSS[5 URRSS	[5 URRSS	[ 5 g)Nr�z�
            create table test(
                t text,
                i integer,
                f float,
                n,
                b blob
                )
            z6insert into test(t, i, f, n, b) values (?, ?, ?, ?, ?)rr+rr$�nostepr�
nofinalize�excInit�excStep�excFinalize�	checkTyper��
checkTypesr��mysum�aggtxt)r�r�r�r�r�r�r��create_aggregater4rFrPr[rdrmr�r�r�rs  rr��AggregateTests.setUpcs)���>�>�*�-����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�8rc�8�URR5 gr!r�r7s rr��AggregateTests.tearDown}r�rc��UR[R5 URR	SS[
5 SSS5 g!,(df   g=f)Nr�r�)r�r�r�r�r�r�r7s r�test_aggr_error_on_create�(AggregateTests.test_aggr_error_on_create�s8��
�
�
�v�6�6�
7��H�H�$�$�U�D�'�:�8�
7�
7�s�"A�
Ar4rc��URR5nUR[R5nURS5 SSS5 UR
[WR5S5 g!,(df   N4=f)Nzselect nostep(t) from testz2user-defined aggregate's 'step' method not defined)	r�r�r�r�r�r�r�rurrs   r�test_aggr_no_step� AggregateTests.test_aggr_no_step�s`���h�h�o�o���
�
�
�v�6�6�
7�2��K�K�4�5�8�����R�\�\�*�M�	O�8�
7�s�A:�:
Bc��URR5nSnUR[RU5 URS5 UR
5SnSSS5 g!,(df   g=f)Nz6user-defined aggregate's 'finalize' method not definedzselect nofinalize(t) from testr)r�r�r�r�r�r�r�)r8r�r�rqs    r�test_aggr_no_finalize�$AggregateTests.test_aggr_no_finalize�sW���h�h�o�o���F��
�
#�
#�F�$;�$;�S�
A��K�K�8�9��,�,�.��#�C�B�
A�
A�s�%A+�+
A9rPc�<�URR5nUR[R5nURS5 UR
5SnSSS5 UR[WR5S5 g!,(df   N4=f)Nzselect excInit(t) from testrz7user-defined aggregate's '__init__' method raised errorr�r8r�rrqs    r�test_aggr_exception_in_init�*AggregateTests.test_aggr_exception_in_init�so���h�h�o�o���
�
�
�v�6�6�
7�2��K�K�5�6��,�,�.��#�C�8�	
����R�\�\�*�,e�f�8�
7���%B
�
Br[c�<�URR5nUR[R5nURS5 UR
5SnSSS5 UR[WR5S5 g!,(df   N4=f)Nzselect excStep(t) from testrz3user-defined aggregate's 'step' method raised errorrrUs    r�test_aggr_exception_in_step�*AggregateTests.test_aggr_exception_in_step�so���h�h�o�o���
�
�
�v�6�6�
7�2��K�K�5�6��,�,�.��#�C�8�	
����R�\�\�*�,a�b�8�
7�rXrdc�<�URR5nUR[R5nURS5 UR
5SnSSS5 UR[WR5S5 g!,(df   N4=f)Nzselect excFinalize(t) from testrz7user-defined aggregate's 'finalize' method raised errorrrUs    r�test_aggr_exception_in_finalize�.AggregateTests.test_aggr_exception_in_finalize�so���h�h�o�o���
�
�
�v�6�6�
7�2��K�K�9�:��,�,�.��#�C�8�	
����R�\�\�*�,e�f�8�
7�rXc��URR5nURSS[545 UR	5SnURUS5 g)Nzselect checkTypes('str', ?, ?)rrr�)r�r�r�rur�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� rc��URR5nURSS5 UR5SnUR	US5 g)Nzselect checkType('int', ?))rrrrr�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� rc��URR5nURSS5 UR5SnUR	US5 g)Nzselect checkTypes('int', ?, ?))r�rr�rr�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� rc��URR5nURSS5 UR5SnUR	US5 g)Nzselect checkType('float', ?))rrrrr�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� rc��URR5nURSS5 UR5SnUR	US5 g)Nzselect checkType('None', ?)r!rrrr�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� rc��URR5nURS[S545 UR	5SnURUS5 g)Nzselect checkType('blob', ?)r$rr)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� rc���URR5nURS5 URS/SQ5 URS5 UR	5SnURUS5 g)Nzdelete from testzinsert into test(i) values (?)))�
)�)�zselect mysum(i) from testr�<)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�!rc��URRS5nUR5SnURU5 g)Nz1select mysum(i) from (select 1 as i) where i == 0r)r�r�r�rr�s   r�test_aggr_no_match�!AggregateTests.test_aggr_no_match�s5���h�h���R�S���l�l�n�Q������#�rc��URR5nSHRnURUS9 URSU45 UR	5SnURX25 SSS5 MT g!,(df   Mf=f)N)rrr�zselect aggtxt(?) from testr)r�r�r�r�r�r�)r8r�r�rqs    r�test_aggr_text�AggregateTests.test_aggr_text�sh���h�h�o�o���$�C����#��&����8�3�&�A��l�l�n�Q�'��� � ��*�'�&�%�&�&�s�8A4�4
B	c��SnUR[U5nURRSS[S9 SSS5 URWR[5 UR[U5nURRSS[S9 SSS5 URUR[5 UR[U5nURRSS[S9 SSS5 URUR[5 g!,(df   N�=f!,(df   N�=f!,(df   NQ=f)Nz�Passing keyword arguments 'name', 'n_arg' and 'aggregate_class' to _sqlite3.Connection.create_aggregate\(\) is deprecated. Parameters 'name', 'n_arg' and 'aggregate_class' will become positional-only in Python 3.15.�testr)�aggregate_class)�n_argr�r)rr�r�)r�r�r�rGr�r�r�r��r8r<rs   r�test_agg_keyword_args�$AggregateTests.test_agg_keyword_args�s��
/�	��
"�
"�#5�u�
=���H�H�%�%�f�a��%�J�>�������h�/�
�
"�
"�#5�u�
=���H�H�%�%�f�A�x�%�P�>�������h�/�
�
"�
"�#5�u�
=���H�H�%�%�6��6>�
&�
@�>�	
������h�/�>�
=��>�
=��>�
=�s#� D�7 D/� E�
D,�/
D=�
Er�N)r@rArBrCr�r�rLr
r:rOrRr�rVrZr]r`rcrgrjrmrprwrzr}r�rDr
rrr<r<bs���9�4�;��^�,�7�O�8�O�$��&�-B�C�g�D�g��&�-B�C�c�D�c��&�-F�G�g�H�g�!�!�!�!�!�!�"��
+�0rr<c�H�\rSrSr\S5rSrSrSrSr	Sr
SrS	rg
)�AuthorizerTestsi�c��U[R:wa[R$US:XdUS:Xa[R$[R$�N�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�<��%�%�%����rc���[R"S5UlURRS5 URR	S5 URRUR5 g)Nr�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�r7s rr��AuthorizerTests.setUpsV���>�>�*�-�������� �	�	
�����,�-������� 2� 2�3rc�8�URR5 gr!r�r7s rr��AuthorizerTests.tearDownr�rc��UR[R5nURR	S5 SSS5 URS[
WR55 g!,(df   N4=f)N�select * from t2�
prohibited�r�r��
DatabaseErrorr�r��assertInrur�r8rs  r�test_table_access�!AuthorizerTests.test_table_accesssP��
�
�
�v�3�3�
4���H�H���/�0�5��
�
�l�C����$5�6�5�
4���A*�*
A8c��UR[R5nURR	S5 SSS5 URS[
WR55 g!,(df   N4=f)N�select c2 from t1r�r�r�s  r�test_column_access�"AuthorizerTests.test_column_accesssP��
�
�
�v�3�3�
4���H�H���0�1�5��
�
�l�C����$5�6�5�
4�r�c��URRS5 URRS5 URRS5 g)Nr�r�)r�r�r�r7s r�test_clear_authorizer�%AuthorizerTests.test_clear_authorizers:��������%������+�,������,�-rc���SnUR[U5nURRSS9 SSS5 UR	WR
[5 g!,(df   N/=f)Nz�Passing keyword argument 'authorizer_callback' to _sqlite3.Connection.set_authorizer\(\) is deprecated. Parameter 'authorizer_callback' will become positional-only in Python 3.15.c��gr!r
r
rrr��>AuthorizerTests.test_authorizer_keyword_args.<locals>.<lambda>,s��r)�authorizer_callback)r�r�r�r�r�r�r�r�s   r�test_authorizer_keyword_args�,AuthorizerTests.test_authorizer_keyword_args#sX��
�	��
"�
"�#5�u�
=���H�H�#�#��#�E�>�������h�/�>�
=�s�A�
A+r�N)
r@rArBrC�staticmethodr�r�r�r�r�r�r�rDr
rrr�r��s2��� �� �4��7�
7�
.�

0rr�c�l^�\rSrSr\S5r\"\SS9U4Sj5r\"\SS9U4Sj5r	Sr
U=r$)�AuthorizerRaiseExceptionTestsi0c�z�U[R:wa[eUS:XdUS:Xa[e[R$r�)r�r��
ValueErrorr�r�s     rr��+AuthorizerRaiseExceptionTests.authorizer_cb1s5���V�)�)�)����4�<�4�4�<������rr�rc�">�[TU]5 gr!��superr��r8�	__class__s �rr��/AuthorizerRaiseExceptionTests.test_table_access9����
��!�#rc�">�[TU]5 gr!r�r�s �rr��0AuthorizerRaiseExceptionTests.test_column_access=r�rr
)r@rArBrCr�r�r
r�r�r�rD�
__classcell__)r�s@rr�r�0sK���� �� ��Z�o�6�$�7�$��Z�o�6�$�7�$rr�c�$�\rSrSr\S5rSrg)�AuthorizerIllegalTypeTestsiAc�f�U[R:wagUS:XdUS:Xag[R$)Nr�r�r��r�r�r�r�s     rr��(AuthorizerIllegalTypeTests.authorizer_cbBs/���V�)�)�)���4�<�4�4�<�����rr
N�r@rArBrCr�r�rDr
rrr�r�A���� �� rr�c�$�\rSrSr\S5rSrg)�AuthorizerLargeIntegerTestsiJc�f�U[R:wagUS:XdUS:Xag[R$)Nr}r�r�r�r�s     rr��)AuthorizerLargeIntegerTests.authorizer_cbKs/���V�)�)�)���4�<�4�4�<�����rr
Nr�r
rrr�r�Jr�rr��__main__)1r�r��sqlite3r��
unittest.mockrr�test.supportrr�utilrr	r
rrrrrr"r%r(r,r/r2r4rFrPr[rdrmr�r�r��TestCaser�r��	Exceptionr��skipIf�sqlite_version_infor�r<r�r�r�r�r@�mainr
rr�<module>r�s}��0���%�/�+�!��������������
�
�
�
�����
�
�������k0�H�%�%�k0�\	�� 	�	�	�
����+�+�j�8�2�4�IM�(�+�+�IM�4�IM�XU0�X�&�&�U0�p30�h�'�'�30�l$�O�$�" �� � �/� ��z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit