
    MiM                         S SK r S SKrS SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKrSS	KJr   " S
 S\5      rg)    N)Path)OperationalError)TemporaryDirectory)Thread)IsolatedAsyncioTestCaseSkipTest)patch   setup_loggerc                       \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S"r%g#)$	SmokeTest   c                     [        5         g Nr   )clss    o/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/aiosqlite/tests/smoke.py
setUpClassSmokeTest.setUpClass   s        c                     [        5       nU R                  UR                  5        [        UR                  5      R                  5       S-  U l        g )Nztest.db)r   
addCleanupcleanupr   nameresolvedb)selftds     r   setUpSmokeTest.setUp   s7    !

#rww-'')I5r   c                   #    [         R                  " U R                  5      I S h  vN nU R                  U[         R                  5        UR                  S5       IS h  vN nUR                  5       I S h  vN nU R                  US/5        S S S 5      IS h  vN   UR                  5       I S h  vN   g  N NZ ND N#! , IS h  vN  (       d  f       N8= f N'7fNselect 1, 2)r
      )		aiosqliteconnectr   assertIsInstance
ConnectionexecutefetchallassertEqualcloser   r   cursorrowss       r   test_connection_awaitSmokeTest.test_connection_await   s     $$TWW--b)"6"67::m,,**DTF8, -, hhj . -* -,,, 	su   $CB99C B;!C$C8B=9CCB?C3C4C;C=C?CCC
CCc                   #    [         R                  " U R                  5       IS h  vN nU R                  U[         R                  5        UR                  S5       IS h  vN nUR                  5       I S h  vN nU R                  US/5        S S S 5      IS h  vN   S S S 5      IS h  vN   g  N NR N< N! , IS h  vN  (       d  f       N0= f N'! , IS h  vN  (       d  f       g = f7fr"   )r%   r&   r   r'   r(   r)   r*   r+   r-   s       r   test_connection_context!SmokeTest.test_connection_context&   s     $$TWW--!!"i&:&:;zz-00F#__..  x0 10 .-- 1. 1000 .---s   %C0B2C06C!B4"C%B:9B6:B:CB8C!C0,C-C04C6B:8C:C	 CC	CC0C-CC-)C0c                   ^#    U R                   R                  5       m " U4S jS5      n[        T5      TTR                  5       U" 5       4n[        R
                  " US   5       IS h  vN nUR                  S5      I S h  vN   UR                  S5      I S h  vN   UR                  5       I S h  vN   UR                  S5      I S h  vN nUR                  5       I S h  vN nS S S 5      IS h  vN   U Hs  n[        R
                  " U5       IS h  vN nUR                  S5      I S h  vN nU R                  UR                  5       I S h  vN W5        S S S 5      IS h  vN   Mu     g  GN
 N N N N N N! , IS h  vN  (       d  f       N= f N Nl NK N8! , IS h  vN  (       d  f       M  = f7f)Nc                   "   > \ rS rSrU 4S jrSrg)1SmokeTest.test_connection_locations.<locals>.Fake1   c                    > T$ r    )r   TEST_DBs    r   __str__9SmokeTest.test_connection_locations.<locals>.Fake.__str__2   s    r   r:   N)__name__
__module____qualname____firstlineno__r<   __static_attributes__)r;   s   r   Faker7   1   s     r   rC   r   z'create table foo (i integer, k integer)z$insert into foo (i, k) values (1, 5)select * from foo)
r   as_posixr   encoder%   r&   r)   commitr*   r+   )r   rC   locsr   r.   r/   locr;   s          @r   test_connection_locations#SmokeTest.test_connection_locations.   sF    ''""$	 	 Ww(8$&A$$T!W--**FGGG**CDDD))+::&9::F**D .- C ((--!zz*=>>  v'8!8$? .--  .GD:* .--- .>!8 .---s  A'G *E4+G .FE7FE9F4E;5FE=F%E?&F*G 5F6#G FG F%2F3"F%F!	F%G *F#+
G 7F9F;F=F?FG F	F
FG F%!F%#G %F=	+F.,F=	8G c                   ^ #    [         R                  " T R                  5       IS h  vN nUR                  S5      I S h  vN   S S S 5      IS h  vN   U 4S jn[        R
                  " [        S5       Vs/ s H
  o2" U5      PM     sn6 I S h  vN   [         R                  " T R                  5       IS h  vN nUR                  S5      I S h  vN nUR                  5       I S h  vN nS S S 5      IS h  vN   [        W5      S:X  d   eg  N N N! , IS h  vN  (       d  f       N= fs  snf  N N~ Ng NQ NC! , IS h  vN  (       d  f       NX= f7f)NzHcreate table multiple_connections (i integer primary key asc, k integer)c                 *  >#    [         R                  " TR                  5       IS h  vN nUR                  SU /5      I S h  vN   UR	                  5       I S h  vN   S S S 5      IS h  vN   g  NH N/ N N! , IS h  vN  (       d  f       g = f7f)Nz/insert into multiple_connections (k) values (?))r%   r&   r   r)   rG   )ir   r   s     r   do_one_conn8SmokeTest.test_multiple_connections.<locals>.do_one_connK   sd      ((11Rjj!RUVTWXXXiik!! 211X! 2111sh   %BA1BA9A3A9A5A9 B+A7,B3A95A97B9B?B BB
   z"select * from multiple_connections)	r%   r&   r   r)   asynciogatherranger*   len)r   r   rO   rN   r.   r/   s   `     r   test_multiple_connections#SmokeTest.test_multiple_connectionsD   s     $$TWW--**9   .-	"
 nnuRyAy!{1~yABBB$$TWW--::&JKKF**D .- 4yB# . .--- BB-K* .---s   %EDEDDDED'E9D2
ED7(E:D9;E>ED;E+D=,E0E;D?<EDED/D!D/+E9E;E=E?EEE
EEc           
        #    [         R                  " U R                  5       IS h  vN nUR                  S5      I S h  vN   [        R
                  " [        S5       Vs/ s H  nUR                  SU/5      PM     sn6 I S h  vN   UR                  5       I S h  vN   S S S 5      IS h  vN   [         R                  " U R                  5       IS h  vN nUR                  S5      I S h  vN nUR                  5       I S h  vN nS S S 5      IS h  vN   [        W5      S:X  d   eg  GN Ns  snf  N N N! , IS h  vN  (       d  f       N= f N Nj NT NF! , IS h  vN  (       d  f       N[= f7f)NzDcreate table multiple_queries (i integer primary key asc, k integer)rQ   z+insert into multiple_queries (k) values (?)zselect * from multiple_queries)
r%   r&   r   r)   rR   rS   rT   rG   r*   rU   )r   r   rN   r.   r/   s        r   test_multiple_queriesSmokeTest.test_multiple_queriesX   s,    $$TWW--**9  
 .. #2Y& JJLqcR&   ))+ .- $$TWW--::&FGGF**D .- 4yB' .  .--- .G* .---s   %E;D/E;D? D2!D?"D4
?D?D9D?D;D?#E;.D=/(E;EE;E!0E1E!E	E!E;EE;2D?4D?;D?=E;?EEEE;E!E!E;!E8'E*(E84E;c                   #    [         R                  " U R                  5       IS h  vN nUR                  5       I S h  vN nUR	                  S5      I S h  vN   UR                  S[        S5       Vs/ s H  o3/PM     sn5      I S h  vN   UR                  5       I S h  vN   S S S 5      IS h  vN   [         R                  " U R                  5       IS h  vN nUR	                  S5      I S h  vN n/ nU  S h  vN nUR                  U5        M   N N Ns  snf  N N Nu! , IS h  vN  (       d  f       N= f Nh NQ NF
 S S S 5      IS h  vN    O! , IS h  vN  (       d  f       O= f[        W5      S:X  d   eg 7f)NzCcreate table iterable_cursor (i integer primary key asc, k integer)z*insert into iterable_cursor (k) values (?)rQ   zselect * from iterable_cursor
r%   r&   r   r.   r)   executemanyrT   rG   appendrU   r   r   r.   rN   r/   rows         r   test_iterable_cursorSmokeTest.test_iterable_cursorn   s7    $$TWW--99;&F..X   $$<ERTI>VIqsI>V   ))+ .- $$TWW--::&EFFFD# !cC  .& ?W  .--- .F!V .----- 4yBs  %FDFD,D D,DD,6D!
D,D&D,$D(%D,)F4D*5(FEF!E6E7E?EE
EEFD,D,!D,(D,*F,E2D53E?FE
EEFEFE6%E(&E62Fc           	        ^ ^#    0 mUU 4S jn[         R                  " S5       IS h  vN nUR                  S5      I S h  vN   UR                  SS5      I S h  vN   UR                  5       I S h  vN   [	        S5       Vs/ s H  n[        XU4S9PM     nnU H  nUR                  5         M     U H  nUR                  5         M     S S S 5      IS h  vN   T R                  [        T5      S5        TR                  5        H  nT R                  [        U5      S5        M      g  GN N N Ns  snf  N`! , IS h  vN  (       d  f       Nu= f7f)	Nc                    >^ UU4S jnTR                  U 5         [        R                  " 5       nUR                  U" 5       5      nUR	                  5         UTU '   S S S 5        g ! , (       d  f       g = f)Nc                    >#    TR                  S5       IS h  vN n U R                  5       I S h  vN nTR                  [        U5      S5        UsS S S 5      IS h  vN   $  NJ N4 N	! , IS h  vN  (       d  f       g = f7f)NrD   r$   )r)   r*   r+   rU   )r.   r/   connr   s     r   query>SmokeTest.test_multi_loop_usage.<locals>.runner.<locals>.query   sZ     <<(;<<!'!22D$$SY2 =<<2 =<<<sT   BA$BA*A& A*BA(B&A*(B*B0A31B=B)subTestrR   new_event_looprun_until_completer,   )krf   rg   loopr/   resultsr   s    `   r   runner/SmokeTest.test_multi_loop_usage.<locals>.runner   sQ      a--/..uw7

!
	 !s   AA%%
A3:memory:z'create table foo (id int, name varchar)z%insert into foo values (?, ?), (?, ?))r
   Sallyr$   Janet   )targetargsr$   )r%   r&   r)   rG   rT   r   startjoinr+   rU   values)r   ro   r   rl   threadsthreadr/   rn   s   `      @r   test_multi_loop_usageSmokeTest.test_multi_loop_usage   s    	" $$Z00B**FGGG**79Q   ))+DI!HMHqvVb':HGM! "! " 10 	Wq)NN$DSY* % 1G M 1000s   $ED,ED<D/D<D1D<3D34D<D54D<ED:AE/D<1D<3D<5D<:E<EEEEc           	        #    [         R                  " U R                  5       IS h  vN nUR                  5        IS h  vN nUR	                  S5      I S h  vN   UR                  S[        S5       Vs/ s H  o3/PM     sn5      I S h  vN   UR                  5       I S h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   [         R                  " U R                  5       IS h  vN nUR	                  S5       IS h  vN n/ nU  S h  vN nUR                  U5        M   GN N Ns  snf  N N N! , IS h  vN  (       d  f       N= f N! , IS h  vN  (       d  f       N= f N Nn Nc
 S S S 5      IS h  vN    O! , IS h  vN  (       d  f       O= fS S S 5      IS h  vN    O! , IS h  vN  (       d  f       O= f[        W5      S:X  d   eg 7f)NzBcreate table context_cursor (i integer primary key asc, k integer)z)insert into context_cursor (k) values (?)rQ   zselect * from context_cursorr\   r_   s         r   test_context_cursorSmokeTest.test_context_cursor   s`    $$TWW--yy{{fnn=   ((?"'),)QS),   iik!! #{ .- $$TWW--zz"@AAV!' %#KK$! ." - " #{{{ .--- .A% BAAAAA .----- 4yBsv  %G&D-G&E D0ED?D2D?7D4
D?D9D?%D;&D?*E5D=6E:G&E(G&.E5/G&2F:E7	F:FE;E9
E;F-G&0E2D?4D?;D?=E?E	EE	EG&E2!E$"E2.G&7F:9E;;F<F:F
F:F%	FF%	!F:(G&3F64G&:G GGG&c                   #    [         R                  " U R                  5       IS h  vN nUR                  5       I S h  vN nUR	                  S5      I S h  vN nU R                  X2S5        UR                  SSS/5      I S h  vN nU R                  X25        UR                  S5      I S h  vN nU R                  X25        S S S 5      IS h  vN   g  N N N NV N. N! , IS h  vN  (       d  f       g = f7f)Nz;create table test_cursor_return_self (i integer, k integer)zcursor execute returns itselfz1insert into test_cursor_return_self values (?, ?))r
   r
   )r$   r$   zinsert into test_cursor_return_self values (3, 3);insert into test_cursor_return_self values (4, 4);insert into test_cursor_return_self values (5, 5);)r%   r&   r   r.   r)   r+   r]   executescript)r   r   r.   results       r   test_cursor_return_self!SmokeTest.test_cursor_return_self   s     $$TWW--99;&F!>>M F V-LM!--CffEU F V,!//E F
 V,% .--&

 .---s   %C=CC=C#C C#C-C#C)C#0C1C#C=C!C=C#C#C#C#!C=#C:)C,*C:6C=c                 \
  #    [         R                  " U R                  5       IS h  vN nU R                  UR                  S5        UR                  5        IS h  vN nU R                  UR                  5        UR                  S5      I S h  vN   UR                  S5      I S h  vN   U R                  UR                  5        UR                  5       I S h  vN   U R                  UR                  5        S S S 5      IS h  vN   U R                  UR                  S5        U R                  UR                  5        U R                  UR                  [        5        UR                  5        IS h  vN nUR                  S5      I S h  vN   UR                  5       I S h  vN nU R!                  U["        5        U R                  US5        U R%                  [&        5         US   nS S S 5        S S S 5      IS h  vN   UR                  5        IS h  vN n[         R(                  Ul        U R                  UR                  [         R(                  5        UR                  S5      I S h  vN   UR                  5       I S h  vN nU R!                  U[         R(                  5        U R                  US   S5        U R                  US   S	5        U R                  US   S5        U R                  US
   S	5        S S S 5      IS h  vN   [         R(                  Ul        [*        Ul        U R                  UR                  [         R(                  5        U R                  UR                  [*        5        UR                  5        IS h  vN nUR                  S5      I S h  vN   UR                  5       I S h  vN nU R!                  U[         R(                  5        U R                  US   S5        U R                  US   S5        U R                  US   S5        U R                  US
   S5        S S S 5      IS h  vN   S S S 5      IS h  vN   g  GN7 GN GN GN GN GNf! , IS h  vN  (       d  f       GN|= f GN GN GN! , (       d  f       GN= f GN! , IS h  vN  (       d  f       GN= f GN GNS GN> GN! , IS h  vN  (       d  f       GN= f GNX GNB GN- N! , IS h  vN  (       d  f       N= f N! , IS h  vN  (       d  f       g = f7f)Nr   zKcreate table test_properties (i integer primary key asc, k integer, d text)z3insert into test_properties (k, d) values (1, 'hi')r
   zselect * from test_properties)r
   r
   hirl   r$   r   ds   hi)r%   r&   r   r+   total_changesr.   assertFalsein_transactionr)   
assertTruerG   assertIsNonerow_factorytext_factorystrfetchoner'   tupleassertRaises	TypeErrorRowbytes)r   r   r.   r`   _s        r   test_connection_properties$SmokeTest.test_connection_properties   s    $$TWW--R--q1yy{{f  !2!23nnE   nnI    1 12iik!!  !2!23 #{ R--q1bnn-R__c2yy{{fnn%DEEE"OO--%%c51  l3&&y1CA 2 #{ yy{{f%.]]"  !3!3Y]]Cnn%DEEE"OO--%%c9==9  Q+  Q.  S1-  S40 #{ ']]BN#BOR^^Y]];R__e4yy{{fnn%DEEE"OO--%%c9==9  Q+  Q/  S1-  S51 #{[ .-- # " #{{{$ #E- 21 #{{{ # F-	 #{{{  #E- #{{{[ .---s  %T,QT,1TQ!T 0Q0Q$Q0)Q'*2Q0Q*Q0<TQ-A/T7R8T;R)RR)(R)AR)*R0R)8TR&TST AS4S5SS
A8STSBTS+TS6,S.-S6S1A8S6=TS4	TT,TT,!T$Q0'Q0*Q0-T0R	6Q97R		TR)R)
R#R)&T)S	/R20S	<	TS
STS(	SS(	#	T.S61S64T6T	<S?=T		TT,T)TT)%T,c                   #    [         R                  " U R                  5       IS h  vN nUR                  S5      I S h  vN   UR                  S5      I S h  vN   UR	                  5       I S h  vN   S S S 5      IS h  vN   [         R                  " U R                  5       IS h  vN nUR                  S5      I S h  vN nUR                  5       I S h  vN nU R                  U/ SQ5        S S S 5      IS h  vN   g  N N N N N! , IS h  vN  (       d  f       N= f N~ Ng NQ N/! , IS h  vN  (       d  f       g = f7f)NzBcreate table test_fetch_all (i integer primary key asc, k integer)z<insert into test_fetch_all (k) values (10), (24), (16), (32)z)select k from test_fetch_all where k < 30))rQ   )   )   )r%   r&   r   r)   rG   r*   r+   r-   s       r   test_fetch_allSmokeTest.test_fetch_all  s     $$TWW--**T   **N   ))+ .- $$TWW--::&QRRF**DT#89 .-- .  .--- .R* .---s   %EDED DDD	D1D2D6ED(E*D)+E.D1D+D1D-D14E?D/ ED	DDED&DD&"E+D1-D1/E1E7D:8EEc                   #    [         R                  " U R                  5       ISh  vN n UR                  S5      I Sh  vN   UR	                  S5      I Sh  vN   SSS5      ISh  vN   g NH N0 N! [
         a  nSUR                  ;  d   e SnAN8SnAf[         a  n[        S5      UeSnAff = f NM! , ISh  vN  (       d  f       g= f7f)z@Assert that after enabling extension loading, they can be loadedNTtestznot authorizedzKpython was not compiled with sqlite3 extension support, so we can't test it)	r%   r&   r   enable_load_extensionload_extensionr   rv   AttributeErrorr   )r   r   es      r   test_enable_load_extension$SmokeTest.test_enable_load_extension  s     $$TWW--	..t444''/// .--4/# 6'qvv555! =  .---s   %CA0CB:A6A2A6A4A6C*B8+C2A64A66
B5 BB:B5$B00B55B:8C:C CCCc                   #    [         R                  " U R                  5       ISh  vN nUR                  S S5      I Sh  vN   U R	                  [
        5         UR                  S5      I Sh  vN   SSS5        SSS5      ISh  vN   g Ng NN N!! , (       d  f       N%= f N! , ISh  vN  (       d  f       g= f7f)zU
Assert that after setting a progress handler returning 1, DB operations are aborted
Nc                      g)Nr
   r:   r:   r   r   <lambda>5SmokeTest.test_set_progress_handler.<locals>.<lambda>%  s    !r   r
   zIcreate table test_progress_handler (i integer primary key asc, k integer))r%   r&   r   set_progress_handlerr   r   r)   r   r   s     r   test_set_progress_handler#SmokeTest.test_set_progress_handler   s      $$TWW--)))Q777""#34jj_   5 .--7 54 .---s   %CBCB(BB(B1B2B6B(>C	B&
CB(B
B#	B(&C(B?.B1/B?;Cc                   #    S nS n[         R                  " U R                  5       ISh  vN nUR                  SSU5      I Sh  vN   UR                  SSU5      I Sh  vN   UR	                  S5       ISh  vN nUR                  5       I Sh  vN nU R                  US   S	5        SSS5      ISh  vN   UR	                  S
5       ISh  vN nUR                  5       I Sh  vN nU R                  US   S5        SSS5      ISh  vN   SSS5      ISh  vN   g N N N N N Nv! , ISh  vN  (       d  f       N= f Nx Nb N?! , ISh  vN  (       d  f       NT= f NK! , ISh  vN  (       d  f       g= f7f)z<Assert that after creating a custom function, it can be usedc                      g)Nno argr:   r:   r   r   no_arg.SmokeTest.test_create_function.<locals>.no_arg.  s    r   c                     U S-  $ Nr$   r:   nums    r   one_arg/SmokeTest.test_create_function.<locals>.one_arg1      7Nr   Nr   r   r   r
   zSELECT no_arg();r   zSELECT one_arg(10);   )r%   r&   r   create_functionr)   r   r+   )r   r   r   r   resr`   s         r   test_create_functionSmokeTest.test_create_function+  s    		 $$TWW--$$Xq&999$$Y7;;;zz"455LLN*  Q2 65 zz"788CLLN*  Q, 98 .--9;5* 6555 9* 9888 .---s  +F	D'F	E/D)	E/#D+$E/=D->E/D3D/D3/E/:D1;E/EE/E,E-EE/EE/F	!E-"F	)E/+E/-E//D31E/3E
	9D<:E
	E/EE/E*	EE*	&E/-F	/F5E86FF	c                 d  #    S n[         R                  " U R                  5       ISh  vN nUR                  SSUSS9I Sh  vN   UR	                  S5      I Sh  vN   UR	                  S5      I Sh  vN   SSS5      ISh  vN   g Na NI N2 N N! , ISh  vN  (       d  f       g= f7f)	zsAssert that after creating a deterministic custom function, it can be used.

https://sqlite.org/deterministic.html
c                     U S-  $ r   r:   r   s    r   r   =SmokeTest.test_create_function_deterministic.<locals>.one_argF  r   r   Nr   r
   T)deterministicz"create table foo (id int, bar int)z#create index t on foo(one_arg(bar)))r%   r&   r   r   r)   )r   r   r   s      r   "test_create_function_deterministic,SmokeTest.test_create_function_deterministic@  s     	 $$TWW--$$Y7$$OOO**ABBB **BCCC .--OB D .---sz   (B0BB0BBBBB6B7B;B0BB0BBBB0B-BB-)B0c                 l  ^#    / mS[         4U4S jjn[        R                  " U R                  5       IS h  vN nUR	                  U5      I S h  vN   UR                  S5      I S h  vN   U R                  ST5        S S S 5      IS h  vN   g  NY NB N+ N! , IS h  vN  (       d  f       g = f7f)N	statementc                 (   > TR                  U 5        g r   )r^   )r   
statementss    r   callback3SmokeTest.test_set_trace_callback.<locals>.callbackS  s    i(r   z	select 10)r   r%   r&   r   set_trace_callbackr)   assertIn)r   r   r   r   s      @r   test_set_trace_callback!SmokeTest.test_set_trace_callbackP  s     
	) 	) $$TWW--''111**[)))MM+z2	 .--1) .---sh   5B4BB4BBB*B+BB4BB4BBB4B1 B#!B1-B4c                   #    S n[         R                  " U R                  5       ISh  vN nUR                  U5      I Sh  vN   UR	                  S5      I Sh  vN   UR	                  S5      I Sh  vN   UR	                  S5      I Sh  vN   U R                  [        R                  5         UR	                  S5      I Sh  vN   SSS5        [        R                  S:  a2  UR                  S5      I Sh  vN   UR	                  S5      I Sh  vN   SSS5      ISh  vN   g GN N N N N Nn! , (       d  f       Nr= f NL N5 N'! , ISh  vN  (       d  f       g= f7f)z+Test authorizer that denies DROP operationsc                 j    U [         R                  :X  a  [         R                  $ [         R                  $ r   )sqlite3SQLITE_DROP_TABLESQLITE_DENY	SQLITE_OKaction_codearg1arg2db_nametrigger_names        r   
deny_drops<SmokeTest.test_set_authorizer_deny_drops.<locals>.deny_drops_  s(    g777***$$$r   Nz#CREATE TABLE test_drop (id INTEGER)z INSERT INTO test_drop VALUES (1)zSELECT * FROM test_dropzDROP TABLE test_drop)      )
r%   r&   r   set_authorizerr)   r   r   DatabaseErrorsysversion_info)r   r   r   s      r   test_set_authorizer_deny_drops(SmokeTest.test_set_authorizer_deny_drops\  s    	%
 $$TWW--##J/// **BCCC**?@@@**6777 ""7#8#89jj!7888 : 7*''---jj!7888 .--/ D@7 9 :9
 .8 .---s   (E)D+E)ED.ED0E5D26ED4#E2D8D6D80E<E	=EEEE)%E&E).E0E2E4E6D88
E	EEE)E&EE&"E)c                   #    S n[         R                  " U R                  5       ISh  vN nUR                  U5      I Sh  vN   U R	                  [
        R                  5         UR                  S5      I Sh  vN   SSS5        SSS5      ISh  vN   g No NX N!! , (       d  f       N%= f N! , ISh  vN  (       d  f       g= f7f)zGTest that exceptions raised in authorizer callback are caught by SQLitec                     [        S5      e)NzTest exception from authorizer)
ValueErrorr   s        r   raise_exceptionLSmokeTest.test_set_authorizer_exception_propagation.<locals>.raise_exceptionx  s    =>>r   Nz(CREATE TABLE test_exception (id INTEGER))r%   r&   r   r   r   r   r   r)   )r   r   r   s      r   )test_set_authorizer_exception_propagation3SmokeTest.test_set_authorizer_exception_propagationu  s     	? $$TWW--##O444""7#8#89jj!KLLL : .--4L :9 .---s   (CBCB3B#B3'B <B=B B3	CB1CB3B  
B.	*B31C3C
9B<:C
Cc                   #    [        S5      nU R                  [        S5         [        R                  " U5       IS h  vN nU R                  U5        S S S 5      IS h  vN   S S S 5        U R                  [        S5         [        R                  " U5      I S h  vN   S S S 5        g  Nk NL! , IS h  vN  (       d  f       Na= f! , (       d  f       Nj= f N<! , (       d  f       g = f7f)Nz!/something/that/shouldnt/exist.dbzunable to open database)r   assertRaisesRegexr   r%   r&   r   )r   bad_dbr   s      r   test_connect_errorSmokeTest.test_connect_error  s     9:##$46OP ((00B!!"% 10 Q ##$46OP##F+++ QP 1000 QP
 , QPs   "C-C	B+ C	B/C	 B-!C	%C-CCC"	C-+C	-C	/C	5B86C	C		
CC-C
C*&C-c           	        #    S n[         R                  " S S5      n[        R                  " [        SUS9   U R                  [        R                  S5         U IS h  vN    S S S 5      IS h  vN   S S S 5        S S S 5        UR                  (       a  UR                  5         [        S5      eg  NR NC! , IS h  vN  (       d  f       NX= f! , (       d  f       Na= f! , (       d  f       Nj= f7f)Nc                  .    [         R                  " S5      e)NI changed my mind)rR   CancelledError)r   __s     r   _raise_cancelled_errorESmokeTest.test_connect_base_exception.<locals>._raise_cancelled_error  s    (()<==r   c                  .    [         R                  " S5      $ Nrq   )r   r&   r:   r   r   r   7SmokeTest.test_connect_base_exception.<locals>.<lambda>  s    '//*2Mr   @   r&   )side_effectr   z!connection thread was not stopped)r%   r(   r	   objectr   r   rR   r   _runningstopAssertionError)r   r   
connections      r   test_connect_base_exception%SmokeTest.test_connect_base_exception  s     	> ))*MrR
LL)9OP""7#9#9;NO!z "z P Q OO !DEE  "zzz PO QPs|   6C3!C"C B3
!C$B7&C1B52C6C">5C33C5C7C=C >C
C
C	C""
C0,C3c                   #    [         R                  " S5       IS h  vN nUR                  S5      I S h  vN   UR                  SSS/5      I S h  vN   UR	                  5        Vs/ s S h  vN o"PM   NY NB N( N
 Os  snf nnU R                  U/ SQ5        S S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7f)Nrq   ,create table foo (i integer, k charvar(250))insert into foo values (?, ?)r
   hellor$   world)zBEGIN TRANSACTION;z-CREATE TABLE foo (i integer, k charvar(250));z$INSERT INTO "foo" VALUES(1,'hello');z$INSERT INTO "foo" VALUES(2,'world');zCOMMIT;)r%   r&   r)   r]   iterdumpr+   )r   r   lineliness       r   test_iterdumpSmokeTest.test_iterdump  s     $$Z00B**KLLL../,1M   -/KKM::DT 1L ;:E:	 100000s   CA7CB.A9B.A;B.)B+A?/A=0A?3B7C9B.;B.=A??B B.C'B*(C.C4B75CCc                   #    [         R                  " U R                  5      I S h  vN nUR                  S5      I S h  vN nUR	                  5       I S h  vN   U R                  [        S5         UR                  5       I S h  vN   S S S 5        U R                  [        S5         UR                  5       I S h  vN   S S S 5        g  N N Nw NJ! , (       d  f       NN= f N&! , (       d  f       g = f7f)Nr#   zConnection closed)r%   r&   r   r)   r,   r   r   r*   )r   r   r.   s      r    test_cursor_on_closed_connection*SmokeTest.test_cursor_on_closed_connection  s     $$TWW--zz-00hhj##J0CD//### E##J0CD//### ED .0# ED $ EDs   $C7CC7C C7CC72CCCC7)C&=C$>C&
C7C7C7C
C!C7$C&&
C40C7c                   #    [         R                  " U R                  5      I S h  vN nUR                  S5      I S h  vN n/ n[	        S5       Ho  nUS:X  a3  UR                  [        R                  " UR                  5       5      5        UR                  [        R                  " UR                  5       5      5        Mq     U H  n UI S h  vN   M     g  N N N! [        R                   a     M0  f = f7f)Nr#   d   2   )r%   r&   r   r)   rT   r^   rR   ensure_futurer,   r*   r   ProgrammingError)r   r   r.   tasksrN   tasks         r   %test_cursor_on_closed_connection_loop/SmokeTest.test_cursor_on_closed_connection_loop  s     $$TWW--zz-00sABwW22288:>?LL..v/@AB  D

  .0 ++ sW   $C:CC:C B	C:
CCCC:C:CC73C:6C77C:c                 H  #    [         R                  " U R                  5      I S h  vN n[        S5       H  nUR	                  SU 35      I S h  vN   M!     UR                  5       I S h  vN   U R                  UR                  R                  5       S5        g  Nu NM N37f)Ni  z
select 1, T)	r%   r&   r   rT   r)   r,   r+   _txempty)r   r   rN   s      r   1test_close_blocking_until_transaction_queue_empty;SmokeTest.test_close_blocking_until_transaction_queue_empty  s}     $$TWW-- tA**z!-...  hhj. . /s3   $B"B)B"BB",B -0B"B" B"c                    #    [         R                  " U R                  5      I S h  vN nUR                  5       I S h  vN   UR                  5       I S h  vN   g  N5 N N	7fr   )r%   r&   r   r,   r   s     r   test_close_twiceSmokeTest.test_close_twice  sI     $$TWW--hhj hhj . 	s1   $A"AA"AA"A A"A" A"c           	        #    S n[         R                  " S5       IS h  vN n[         R                  " S5       IS h  vN nUR                  S5      I S h  vN   UR                  SSS/5      I S h  vN   UR	                  5       I S h  vN   U R                  [        S5         UR                  S5      I S h  vN   S S S 5        UR                  X1S	9I S h  vN   UR                  S5       IS h  vN nUR                  5       I S h  vN nU R                  USS/5        S S S 5      IS h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   g  GN7 GN GN N N N! , (       d  f       N= f N N Nm NK! , IS h  vN  (       d  f       N`= f NW! , IS h  vN  (       d  f       Nl= f Nc! , IS h  vN  (       d  f       g = f7f)
Nc                     [        XU5        g r   )print)abcs      r   progress1SmokeTest.test_backup_aiosqlite.<locals>.progress  s    !Nr   rq   r  r  r  r
  no such table: foorD   )r+  )
r%   r&   r)   r]   rG   r   r   backupr*   r+   )r   r+  db1db2r.   r/   s         r   test_backup_aiosqliteSmokeTest.test_backup_aiosqlite  s^    	 j))Sj))S++LMMM///,1M   **,''(8:NOkk"5666 P **S*444{{#6776#__..  l'CD 87 *) *)))M  7 PO 57. 8777 *))) *)))sQ  GEGF7E F7FEF4E 5FE"F'E&<E$
=E&FE7F5E9
6F9E?E;
E?&F1E=2F6F7FF7GF5GF7F F"F$E&&
E40F9F;E?=F?FFFFF7F2	!F$"F2	.F75G7G=G >G
Gc                   #    [         R                  " S5       IS h  vN n[        R                  " S5       nUR                  S5      I S h  vN   UR	                  SSS/5      I S h  vN   UR                  5       I S h  vN   U R                  [        S5         UR                  S5        S S S 5        UR                  U5      I S h  vN   UR                  S5      nUR                  5       nU R                  USS/5        S S S 5        S S S 5      IS h  vN   g  N N N N! , (       d  f       N}= f Nk! , (       d  f       N:= f N1! , IS h  vN  (       d  f       g = f7f)Nrq   r  r  r  r
  r-  rD   )r%   r&   r   r)   r]   rG   r   r   r.  r*   r+   )r   r/  r0  r.   r/   s        r   test_backup_sqliteSmokeTest.test_backup_sqlite  s    $$Z00C,kk"PQQQoo3lL5Q   jjl""++,<>RSKK 34 T jjo%%%89(  l'CD - 100Q #SS & -, 1000s   E%DE%ED8DD8)D!*D8D#D8D%.D8
D69D8EE%E	E%D8!D8#D8%
D3/D88
E	E	E%E"EE"E%c                    #    [         R                  " S5      I S h  vN nU R                  [        S5         AS S S 5        g  N%! , (       d  f       g = f7f)Nrq   z#.*was deleted before being closed.*)r%   r&   assertWarnsRegexResourceWarningr   s     r   !test_emits_warning_when_left_open+SmokeTest.test_emits_warning_when_left_open  sJ     $$Z00""C
 
 
 1
 
s%   AAAA
A
AAc                    #    [         R                  " S5      I S h  vN nUR                  5       I S h  vN   g  N N7fr   )r%   r&   r   r   s     r   test_stop_without_close!SmokeTest.test_stop_without_close
  s-     $$Z00ggi 1s   >:><>>c                    ^ S mU4S jn[         R                  " 5       nUR                  U" 5       5        UR                  5         TR	                  5         g )Nc                  N   >#    [         R                  " S5      I S h  vN m g  N7fr   )r%   r&   r   s   r   inner:SmokeTest.test_stop_after_event_loop_closed.<locals>.inner  s      ((44B4s   %#%)rR   rj   rk   r,   r   )r   rA  rm   r   s      @r   !test_stop_after_event_loop_closed+SmokeTest.test_stop_after_event_loop_closed  s?    	5 %%'(


	r   r@  N)&r>   r?   r@   rA   classmethodr   r   r0   r3   rJ   rV   rY   ra   r|   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r#  r1  r4  r9  r<  rC  rB   r:   r   r   r   r      s     6
1@,(,&+B*-*52n:	-*D 
392	M,F"&$	/E.E$r   r   )rR   r   r   pathlibr   r   tempfiler   	threadingr   unittestr   r   unittest.mockr	   r%   helpersr   r   r:   r   r   <module>rL     s7      
  $ '  6   !G' Gr   