
    i?C                         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g)	SmokeTest   c                     [        5         g Nr   )clss    O/home/james-whalen/.local/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>.Fake0   c                    > T$ r    )r   TEST_DBs    r   __str__9SmokeTest.test_connection_locations.<locals>.Fake.__str__1   s    r   r:   N)__name__
__module____qualname____firstlineno__r<   __static_attributes__)r;   s   r   Faker7   0   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_connJ   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_connectionsC   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_queriesW   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_cursorm   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_arg0      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_argE  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>.callbackR  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_callbackO  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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_errorf  s    (()<==r   c                  .    [         R                  " S5      $ )Nrq   )sqlite3r&   r:   r   r   r   7SmokeTest.test_connect_base_exception.<locals>.<lambda>i  s    '//*2Mr   @   r&   )side_effectr   z!connection thread was not stopped)r%   r(   r	   objectr   r   rR   r   _running_stop_runningAssertionError)r   r   
connections      r   test_connect_base_exception%SmokeTest.test_connect_base_exceptiond  s     	> ))*MrR
LL)9OP""7#9#9;NO!z "z P Q $$& !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_iterdumpu  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   
ValueErrorr*   )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                    #    [         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  r  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%)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  rB   r:   r   r   r   r      s     6
1@,(,&+B*-*52n:	-*D 
3,F"&$E.Er   r   )rR   r   pathlibr   r   tempfiler   	threadingr   unittestr   r   unittest.mockr	   r%   helpersr   r   r:   r   r   <module>r     s6       $ '  6   !E' Er   