+
    BiM                        ^ RI t ^ RIt^ RIHt ^ RIHtHt ^ RIH	t	 ^RI
Ht ^RI
Ht  ! R R] P                  4      t ! R	 R
] P                  4      t ! R R]] P                  4      t ! R R]] P                  4      t ! R R] P                  4      t ! R R] P                  4      t ! R R] P                  4      t]R8X  d   ] P,                  ! 4        R# R# )    N)contextmanager)TESTFNunlinkassert_python_ok)memory_database)MemoryDatabaseMixinc                   h   a  ] tR t^"t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )TransactionTestsc                   \         P                  ! \        ^ R7      V n        V P                  P	                  4       V n        \         P                  ! \        ^ R7      V n        V P                  P	                  4       V n        R# )r   )timeoutN)sqliteconnectr   con1cursorcur1con2cur2selfs   &:/usr/lib/python3.14/test/test_sqlite3/test_transactions.pysetUpTransactionTests.setUp#   sP     NN615	II$$&	NN615	II$$&	    c                    V P                   P                  4        V P                  P                  4        V P                  P                  4        V P                  P                  4        \        \        4       R #   \        \        4       i ; iN)r   closer   r   r   r   r   r   s   &r   tearDownTransactionTests.tearDown,   sP    	IIOOIIOOIIOOIIOO 6NF6Ns   A(A; ;Bc                H   V P                   P                  R 4       V P                   P                  R4       V P                   P                  R4       V P                  P                  R4       V P                  P                  4       pV P	                  \        V4      ^ 4       R# )create table test(i)insert into test(i) values (5)zcreate table test2(j)select i from testNr   executer   fetchallassertEquallenr   ress   & r   $test_dml_does_not_auto_commit_before5TransactionTests.test_dml_does_not_auto_commit_before7   st    		01		:;		12		./ii  "S1%r   c                   V P                   P                  R 4       V P                   P                  R4       V P                  P                  R4       V P                  P                  4       pV P	                  \        V4      ^ 4       R# )r!   r"   r#   Nr$   r)   s   & r   test_insert_starts_transaction/TransactionTests.test_insert_starts_transaction?   sa    		01		:;		./ii  "S1%r   c                x   V P                   P                  R 4       V P                   P                  R4       V P                  P                  4        V P                   P                  R4       V P                  P                  R4       V P                  P                  4       ^ ,          pV P                  V^4       R# )r!   r"   zupdate test set i=6r#   N)r   r%   r   commitr   fetchoner'   r)   s   & r   test_update_starts_transaction/TransactionTests.test_update_starts_transactionF   s    		01		:;				/0		./ii  "1%a r   c                |   V P                   P                  R 4       V P                   P                  R4       V P                  P                  4        V P                   P                  R4       V P                  P                  R4       V P                  P                  4       pV P                  \        V4      ^4       R# )r!   r"   zdelete from testr#   Nr   r%   r   r1   r   r&   r'   r(   r)   s   & r   test_delete_starts_transaction/TransactionTests.test_delete_starts_transactionO   s    		01		:;				,-		./ii  "S1%r   c                   V P                   P                  R 4       V P                   P                  R4       V P                  P                  4        V P                   P                  R4       V P                  P                  R4       V P                  P                  4       pV P                  \        V4      ^4       V P                  V^ ,          ^ ,          ^4       R# )r!   r"   zreplace into test(i) values (6)r#   Nr6   r)   s   & r   test_replace_starts_transaction0TransactionTests.test_replace_starts_transactionX   s    		01		:;				;<		./ii  "S1%QA&r   c                   V P                   P                  R 4       V P                   P                  R4       RV P                  n        V P	                  V P                  P                  R4       V P
                  P                  R4       V P
                  P                  4       pV P	                  \        V4      ^4       RV P                  n        V P	                  V P                  P                  R4       V P                   P                  R4       V P
                  P                  R4       V P
                  P                  4       pV P	                  \        V4      ^4       R# )r!   r"   Nr#   DEFERRED)r   r%   r   isolation_levelr'   r   r&   r(   r)   s   & r   test_toggle_auto_commit(TransactionTests.test_toggle_auto_commitb   s    		01		:;$(		!22D9		./ii  "S1%$.		!22Z@		:;		./ii  "S1%r   c                0   V P                   P                  R 4       V P                   P                  R4       V P                  \        P                  4      ;_uu_ 4        V P
                  P                  R4       RRR4       R#   + '       g   i     R# ; ir!   r"   N)r   r%   assertRaisesr   OperationalErrorr   r   s   &r   test_raise_timeout#TransactionTests.test_raise_timeoutr   sa    		01		:;v6677II>? 8777s   BB	c                b   V P                   P                  R 4       V P                   P                  R4       V P                  \        P                  4      ;_uu_ 4        V P
                  P                  R4       RRR4       V P                  P                  4        R#   + '       g   i     L,; irB   )r   r%   rC   r   rD   r   r   r1   r   s   &r   test_lockingTransactionTests.test_lockingx   st     			01		:;v6677II>? 8 			 87s   BB.	c                N   \        4       ;_uu_ 4       pVP                  4       pVP                  R4       VP                  R4       VP                  R4       VP                  4        V P	                  VP                  4       . RO4       RRR4       R#   + '       g   i     R# ; i)z3Check that cursors behave correctly after rollback.zcreate table test(x)zinsert into test(x) values (5)z&select 1 union select 2 union select 3N)      )   )r   r   r%   rollbackr'   r&   )r   concurs   &  r    test_rollback_cursor_consistency1TransactionTests.test_rollback_cursor_consistency   sn    #**,CKK./KK89KK@ALLNS\\^-?@ s   A6BB$	c                  a / oV3R  lpV P                   P                  R4       V! V P                   RRRR4       V P                   P                  4        V! V P                  R4      P	                  4       ^ ,          pV P                  V^4       V! V P                  R4      P                  pV P                  V^4       V P                  P                  4        V! V P                   RR	4       V! V P                   RR
4       V! V P                  R4      P	                  4       ^ ,          pV P                  V^ 4       V! V P                   R4      P	                  4       ^ ,          pV P                  V^4       V P                   P                  4        V! V P                  R4      P	                  4       ^ ,          pV P                  V^4       R# )c                 f   < V P                  4       pVP                  W4       VS\        V4      &   V# r   )r   r%   id)cxsqlargscuCURSORSs   &&* r   rY   @TransactionTests.test_multiple_cursors_and_iternext.<locals>.sql   s-    BJJs!!GBsGIr   create table t(t)z"insert into t values (?), (?), (?)u1u2u3zselect count(*) from tzdelete from tzinsert into t values (?)u4u5N)r   r%   r1   r   r2   r'   rowcount)r   rY   countchangesr\   s   &   @r   "test_multiple_cursors_and_iternext3TransactionTests.test_multiple_cursors_and_iternext   sw    	 			-.DII;T4N		 DII78AACAF"dii1::!$		 	DII148DII148 DII78AACAF" DII78AACAF" 			DII78AACAF"r   )r   r   r   r   N)__name__
__module____qualname____firstlineno__r   r   r+   r.   r3   r7   r:   r?   rE   rH   rS   rg   __static_attributes____classdictcell____classdict__s   @r   r   r   "   sH     '	&&!&'& @	A%# %#r   r   c                   H   a  ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
RollbackTestszEbpo-44092: sqlite3 now leaves it to SQLite to resolve rollback issuesc                n   \         P                  ! R 4      V n        V P                  P                  4       V n        V P                  P                  4       V n        V P                  ;_uu_ 4        V P                  P                  R4       V P                  P                  R. RO4       RRR4       V P                  P                  R4       RpV P                  P                  V4       V P                  P                  4        V P
                  P                  V4      V n	        R#   + '       g   i     L; i):memory:zcreate table t(c)zinsert into t values(?)Nzbegin transactionzselect c from t))r   rK   rM   )
r   r   rQ   r   r   r   r%   executemanyrP   r*   )r   selects   & r   r   RollbackTests.setUp   s    >>*-HHOO%	HHOO%	XXXHH01HH  !:<NO  			-."		&!99$$V, Xs   .:D$$D4	c                :    V P                   P                  4        R # r   )rQ   r   r   s   &r   r   RollbackTests.tearDown   s    r   c                t    \        V P                  4       F  w  rV P                  V^ ,          V4       K   	  R# )r   N)	enumerater*   r'   )r   irows   &  r   _check_rowsRollbackTests._check_rows   s+    )FASVQ' *r   c                *    V = V P                  4        R # r   )r   r~   r   s   &r   0test_no_duplicate_rows_after_rollback_del_cursor>RollbackTests.test_no_duplicate_rows_after_rollback_del_cursor   s    Ir   c                Z    V P                   P                  4        V P                  4        R # r   )r   r   r~   r   s   &r   2test_no_duplicate_rows_after_rollback_close_cursor@RollbackTests.test_no_duplicate_rows_after_rollback_close_cursor   s    		r   c                \    V P                   P                  R 4       V P                  4        R# )zselect c from t where c = 1N)r   r%   r~   r   s   &r   /test_no_duplicate_rows_after_rollback_new_query=RollbackTests.test_no_duplicate_rows_after_rollback_new_query   s!    		78r   )rQ   r   r   r*   N)ri   rj   rk   rl   __doc__r   r   r~   r   r   r   rm   rn   ro   s   @r   rr   rr      s+     O-( r   rr   c                   ,   a  ] tR t^t o R tR tRtV tR# )SpecialCommandTestsc                    V P                   P                  R 4       V P                   P                  R4       V P                   P                  R4       R# )r!   r"   zdrop table testNrR   r%   r   s   &r   test_drop_table#SpecialCommandTests.test_drop_table   s;    /09:*+r   c                    V P                   P                  R 4       V P                   P                  R4       V P                   P                  R4       R# )r!   r"   zpragma count_changes=1Nr   r   s   &r   test_pragmaSpecialCommandTests.test_pragma   s;    /09:12r    N)ri   rj   rk   rl   r   r   rm   rn   ro   s   @r   r   r      s     ,
3 3r   r   c                   2   a  ] tR t^t o R tR tR tRtV tR# )TransactionalDDLc                    V P                   P                  R 4       V P                   P                  4        V P                   P                  R4      P                  4       pV P	                  V. 4       R# )r!   select * from testN)rQ   r%   rP   r&   r'   )r   results   & r   'test_ddl_does_not_autostart_transaction8TransactionalDDL.test_ddl_does_not_autostart_transaction   sU     	/0!!"67@@B$r   c                d   V P                   P                  R 4       V P                   P                  R4       V P                   P                  4        V P                  \        P
                  4      ;_uu_ 4        V P                   P                  R4       RRR4       R#   + '       g   i     R# ; i)zbegin immediater!   r   NrQ   r%   rP   rC   r   rD   r   s   &r    test_immediate_transactional_ddl1TransactionalDDL.test_immediate_transactional_ddl   ss     	*+/0v6677HH12 8777   8BB/	c                d   V P                   P                  R 4       V P                   P                  R4       V P                   P                  4        V P                  \        P
                  4      ;_uu_ 4        V P                   P                  R4       RRR4       R#   + '       g   i     R# ; i)beginr!   r   Nr   r   s   &r   test_transactional_ddl'TransactionalDDL.test_transactional_ddl   sr     	!/0v6677HH12 8777r   r   N)	ri   rj   rk   rl   r   r   r   rm   rn   ro   s   @r   r   r      s     %33 3r   r   c                   X   a  ] tR tRt o RtRtR tR tR tR t	R t
R	 tR
 tR tRtV tR# )IsolationLevelFromIniti  r^   insert into t values(1)c                    . V n         R # r   tracedr   s   &r   r   IsolationLevelFromInit.setUp  s	    r   c                   a  VP                  S P                  4       VP                  V 3R  l4       V;_uu_ 4        VP                  S P                  4       RRR4       R#   + '       g   i     R# ; i)c                 :   < SP                   P                  V 4      # r   r   appendstmtr   s   &r   <lambda>2IsolationLevelFromInit._run_test.<locals>.<lambda>  s    4;;+=+=d+Cr   N)r%   CREATEset_trace_callbackINSERTr   rX   s   f&r   	_run_test IsolationLevelFromInit._run_test  sC    


4;;
CDRJJt{{# RRRs   A""A3	c                    \        4       ;_uu_ 4       pV P                  V4       V P                  V P                  R V P                  R.4       RRR4       R#   + '       g   i     R# ; i)BEGIN COMMITNr   r   r'   r   r   r   s   & r   test_isolation_level_default3IsolationLevelFromInit.test_isolation_level_default  sG    "NN2T[[8T[[(*KL s   ;AA)	c                    \        R R7      ;_uu_ 4       pV P                  V4       V P                  V P                  RV P                  R.4       RRR4       R#   + '       g   i     R# ; i) r>   r   r   Nr   r   s   & r   test_isolation_level_begin1IsolationLevelFromInit.test_isolation_level_begin  sI    R00BNN2T[[8T[[(*KL 1000   ;AA+	c                    \        R R7      ;_uu_ 4       pV P                  V4       V P                  V P                  RV P                  R.4       RRR4       R#   + '       g   i     R# ; i)r=   r   BEGIN DEFERREDr   Nr   r   s   & r   test_isolation_level_deferred4IsolationLevelFromInit.test_isolation_level_deferred  sJ    Z88BNN2T[[+;T[[(*ST 9888r   c                    \        R R7      ;_uu_ 4       pV P                  V4       V P                  V P                  RV P                  R.4       RRR4       R#   + '       g   i     R# ; i)	IMMEDIATEr   BEGIN IMMEDIATEr   Nr   r   s   & r   test_isolation_level_immediate5IsolationLevelFromInit.test_isolation_level_immediate   M    [99RNN2T[[/hGI :999r   c                    \        R R7      ;_uu_ 4       pV P                  V4       V P                  V P                  RV P                  R.4       RRR4       R#   + '       g   i     R# ; i)	EXCLUSIVEr   BEGIN EXCLUSIVEr   Nr   r   s   & r   test_isolation_level_exclusive5IsolationLevelFromInit.test_isolation_level_exclusive&  r   r   c                    \        R R7      ;_uu_ 4       pV P                  V4       V P                  V P                  V P                  .4       R R R 4       R #   + '       g   i     R # ; i)Nr   r   r   s   & r   test_isolation_level_none0IsolationLevelFromInit.test_isolation_level_none,  sD    T22bNN2T[[4;;-8 3222s   9AA)	r   N)ri   rj   rk   rl   r   r   r   r   r   r   r   r   r   r   rm   rn   ro   s   @r   r   r     sA      F&F$M
M
U
II9 9r   r   c                   T   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tRtV tR# )IsolationLevelPostIniti2  r   c                   a  \         P                  ! R 4      S n        S P                  P                  R4       . S n        S P                  P                  V 3R l4       R# )rt   r^   c                 :   < SP                   P                  V 4      # r   r   r   s   &r   r   .IsolationLevelPostInit.setUp.<locals>.<lambda>9  s    0B0B40Hr   N)r   r   rX   r%   r   r   r   s   fr   r   IsolationLevelPostInit.setUp5  s>    ..,+,""#HIr   c                :    V P                   P                  4        R # r   )rX   r   r   s   &r   r   IsolationLevelPostInit.tearDown;  s    r   c                   V P                   ;_uu_ 4        V P                   P                  V P                  4       R R R 4       V P                  V P                  RV P                  R.4       R #   + '       g   i     L;; i)Nr   r   )rX   r%   QUERYr'   r   r   s   &r   r   3IsolationLevelPostInit.test_isolation_level_default>  sK    WWWGGOODJJ' xX&FG Ws   &A..A>	c                $   R V P                   n        V P                   ;_uu_ 4        V P                   P                  V P                  4       RRR4       V P	                  V P
                  RV P                  R.4       R#   + '       g   i     L;; i)r   Nr   r   rX   r>   r%   r   r'   r   r   s   &r   r   1IsolationLevelPostInit.test_isolation_level_beginC  sW    "$WWWGGOODJJ' xX&FG W   &A??B	c                $   R V P                   n        V P                   ;_uu_ 4        V P                   P                  V P                  4       RRR4       V P	                  V P
                  RV P                  R.4       R#   + '       g   i     L;; i)r=   Nr   r   r   r   s   &r   test_isolation_level_deferrred5IsolationLevelPostInit.test_isolation_level_deferrredI  sX    ",WWWGGOODJJ' '7X&NO Wr   c                $   R V P                   n        V P                   ;_uu_ 4        V P                   P                  V P                  4       RRR4       V P	                  V P
                  RV P                  R.4       R#   + '       g   i     L;; i)r   Nr   r   r   r   s   &r   r   5IsolationLevelPostInit.test_isolation_level_immediateO  [    "-WWWGGOODJJ' +TZZB	D Wr   c                $   R V P                   n        V P                   ;_uu_ 4        V P                   P                  V P                  4       RRR4       V P	                  V P
                  RV P                  R.4       R#   + '       g   i     L;; i)r   Nr   r   r   r   s   &r   r   5IsolationLevelPostInit.test_isolation_level_exclusiveV  r   r   c                    R V P                   n        V P                   ;_uu_ 4        V P                   P                  V P                  4       R R R 4       V P	                  V P
                  V P                  .4       R #   + '       g   i     L9; ir   r   r   s   &r   r   0IsolationLevelPostInit.test_isolation_level_none]  sR    "&WWWGGOODJJ' tzzl3 Ws   &A==B	)rX   r   N)ri   rj   rk   rl   r   r   r   r   r   r   r   r   r   rm   rn   ro   s   @r   r   r   2  s=     %EJH
HPDD4 4r   r   c                      a  ] tR tRt o Rt]P                  t]RR l4       t	R t
R tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tRtV tR# )AutocommitAttributeid  z,Test PEP 249-compliant autocommit behaviour.c              #    a"    . oVP                  V3R  l4       Rx  V P                  SV4       V'       d   VP                  R4       R# R#   T P                  ST4       T'       d   TP                  R4       i i ; i5i)c                 &   < SP                  V 4      # r   )r   )r   r   s   &r   r   6AutocommitAttribute.check_stmt_trace.<locals>.<lambda>l  s    v}}T/Br   N)r   r'   )r   rX   expectedresetr   s   &&&&@r   check_stmt_trace$AutocommitAttribute.check_stmt_traceh  sq     	,F!!"BCVX.%%d+  VX.%%d+ s   B A /B .A==B c                    \        4       ;_uu_ 4       pV P                  VP                  \        P                  4       R R R 4       R #   + '       g   i     R # ; ir   )r   r'   
autocommitr   LEGACY_TRANSACTION_CONTROLr   s   & r   test_autocommit_default+AutocommitAttribute.test_autocommit_defaults  s:    "R]]#>>@ s   +AA	c           
        R R\         P                  3pV F  pV P                  VR7      ;_uu_ 4        \        VR7      ;_uu_ 4       pV P	                  VP
                  V4       RRR4       \        4       ;_uu_ 4       pW#n        V P	                  VP
                  V4       RRR4       RRR4       K  	  R#   + '       g   i     L[; i  + '       g   i     L1; i  + '       g   i     K  ; i)TFmoder   N)r   r   subTestr   r'   r   )r   datasetr   rX   s   &   r   test_autocommit_setget*AutocommitAttribute.test_autocommit_setgetx  s    --

 D4(($55$$R]]D9 6$&&"$(M$$R]]D9 ' )( 55&& )((s;   CB8%C?#C"C8CCCCC/c           
     .   R pR Fe  pV P                  VR7      ;_uu_ 4        V P                  \        V4      ;_uu_ 4        \        P                  ! RVR7       RRR4       RRR4       Kg  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)z*autocommit must be True, False, or.*LEGACYNr   rt   r  )a   r   N)r  assertRaisesRegex
ValueErrorr   r   )r   msgr   s   &  r   test_autocommit_setget_invalid2AutocommitAttribute.test_autocommit_setget_invalid  sc    :%D4((++J<<NN:$? = )( &<< )((s#   BA0B0B ;BBc           	     r   . ROp\        RR7      ;_uu_ 4       pV P                  VP                  4       V P                  W!4      ;_uu_ 4        VP	                  R 4       VP                  4        VP                  4        RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)SELECT 1Fr  N)r  r   BEGINROLLBACKr  )r   
assertTruein_transactionr   r%   r1   rP   r   r   rX   s   &  r   test_autocommit_disabled,AutocommitAttribute.test_autocommit_disabled  sy    
 .."OOB--.&&r44

:&		 5 /.44 /..s#   5B%2B	 B%B"B%%B6	c           	     2   R .p\        RR7      ;_uu_ 4       pV P                  VP                  4       V P                  W!RR7      ;_uu_ 4        VP	                  4        RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  Fr  )r   N)r   r  r  r   r   r  s   &  r   *test_autocommit_disabled_implicit_rollback>AutocommitAttribute.test_autocommit_disabled_implicit_rollback  sh    <.."OOB--.&&r5&AA
 B /.AA /..s#   7BA2	 B2B=BB	c           	        R R.p\        RR7      ;_uu_ 4       pV P                  VP                  4       V P                  W!4      ;_uu_ 4        VP	                  R 4       VP	                  R4       V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zCREATE TABLE t(t)zINSERT INTO t VALUES(1)Tr  N)r   assertFalser  r   r%   r  s   &  r   test_autocommit_enabled+AutocommitAttribute.test_autocommit_enabled  s    ')BC--R../&&r44

./

45  !2!23 5 .-44 .--s#   5B1>B	B1B.)B11C	c                   R F  pV P                  VR7      ;_uu_ 4        \        RR7      ;_uu_ 4       p\        W!4      pV P                  VP                  4       V P                  V. 4      ;_uu_ 4        V! 4        V P                  VP                  4       RRR4       RRR4       RRR4       K  	  R#   + '       g   i     L&; i  + '       g   i     L1; i  + '       g   i     K  ; i)r1   )opTr  N)r1   rP   )r  r   getattrr  r  r   )r   r  rX   meths   &   r   test_autocommit_enabled_txn_ctl3AutocommitAttribute.test_autocommit_enabled_txn_ctl  s    &B$$$55"2?D$$R%6%67..r266(():):; 7 6 %$ '
 76 65 %$$s;   CAC
6#B7C
!C7CC

CCC.c           	     R   R .p\        RR7      ;_uu_ 4       pV P                  VP                  4       V P                  W!4      ;_uu_ 4        RVn        V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   Fr  TN)r   r  r  r   r   r  r  s   &  r   %test_autocommit_disabled_then_enabled9AutocommitAttribute.test_autocommit_disabled_then_enabled  st    :.."OOB--.&&r44 $  !2!23 5 /.44 /..#   5B#B	0BBBB&	c           	     R   R .p\        RR7      ;_uu_ 4       pV P                  VP                  4       V P                  W!4      ;_uu_ 4        RVn        V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  Tr  FN)r   r  r  r   r   r  r  s   &  r   %test_autocommit_enabled_then_disabled9AutocommitAttribute.test_autocommit_enabled_then_disabled  st    9--R../&&r44 % 1 12 5 .-44 .--r'  c           	     t   R .p\        RR7      ;_uu_ 4       pV P                  VP                  4       V P                  W!4      ;_uu_ 4        VP	                  R 4       RVn        V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   Tr  FN)r   r  r  r   r%   r   r  r  s   &  r   &test_autocommit_explicit_then_disabled:AutocommitAttribute.test_autocommit_explicit_then_disabled  s    $%--R../&&r44

+, % 1 12 5 .-44 .--s#   5B&4B	B&B#B&&B7	c                   \        R R7      ;_uu_ 4       pV P                  V. 4      ;_uu_ 4        V;_uu_ 4        V P                  VP                  4       RRR4       V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L=; i  + '       g   i     L-; i  + '       g   i     R# ; i)Tr  N)r   r   r  r  r   s   & r   test_autocommit_enabled_ctx_mgr3AutocommitAttribute.test_autocommit_enabled_ctx_mgr  s~    --&&r2..R$$R%6%67   !2!23 / .- R /. .--s9   B2B	B#B	:B2BB	B/*B22C	c                   R R.p\        RR7      ;_uu_ 4       pV P                  W!4      ;_uu_ 4        V;_uu_ 4        V P                  VP                  4       RRR4       V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L=; i  + '       g   i     L-; i  + '       g   i     R# ; i)r   r  Fr  N)r   r   r  r  r  s   &  r    test_autocommit_disabled_ctx_mgr4AutocommitAttribute.test_autocommit_disabled_ctx_mgr  s    g&.."&&r44ROOB$5$56  1 12 5 /.R 54 /..s9   B5B"	B#B"	=B5BB"	"B2-B55C	c                    . ROp\        V P                  R7      ;_uu_ 4       pVP                  R4       V P                  W!4      ;_uu_ 4        V;_uu_ 4        V P	                  VP
                  4       VP                  R4       V P                  VP
                  4       RRR4       V P	                  VP
                  4       RRR4       RRR4       R#   + '       g   i     L=; i  + '       g   i     L-; i  + '       g   i     R# ; i)r   INSERT INTO T VALUES(1)r  r^   N)r   r5  r   )r   legacyr%   r   r  r  r  r  s   &  r   test_autocommit_compat_ctx_mgr2AutocommitAttribute.test_autocommit_compat_ctx_mgr  s    B44JJ*+&&r44R$$R%6%67JJ89OOB$5$56    !2!23 5 54 R 54 544s<   +C<C)	AC!#C)	C<C&!C)	)C94C<<D	c           	        R R.p\        RR7      ;_uu_ 4       pV P                  W!4      ;_uu_ 4        V P                  VP                  4       VP	                  R 4       VP                  R4       V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r  Tr  N)r   r   r  r  r%   executescriptr  r  s   &  r   %test_autocommit_enabled_executescript9AutocommitAttribute.test_autocommit_enabled_executescript  s    Z(--&&r44  !2!23

7#  , 1 12	 5 .-44 .--s#   B1AB	B1B.)B11C	c           	     f   R .p\        RR7      ;_uu_ 4       pV P                  W!4      ;_uu_ 4        V P                  VP                  4       VP	                  R 4       V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  Fr  N)r   r   r  r  r:  r  s   &  r   &test_autocommit_disabled_executescript:AutocommitAttribute.test_autocommit_disabled_executescript  sy    <.."&&r44 1 12  , 1 12 5 /.44 /..s#   BAB	:BBBB0	c           	        . ROp\        V P                  R7      ;_uu_ 4       pV P                  W!4      ;_uu_ 4        V P                  VP                  4       VP                  R 4       VP                  R4       V P                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r  r  N)r  r   r  )r   r6  r   r  r  r%   r:  r  s   &  r   $test_autocommit_compat_executescript8AutocommitAttribute.test_autocommit_compat_executescript  s    244&&r44  !2!23

7#  ,  !2!23	 5 5444 544s#   B;AB(	B;(B83B;;C	c                &    R p\        RVRR7       R# )zif 1:
            import sqlite3
            cx = sqlite3.connect(":memory:", autocommit=False)
            cx.set_trace_callback(print)
        z-czutf-8)PYTHONIOENCODINGNr   )r   codes   & r   *test_autocommit_disabled_implicit_shutdown>AutocommitAttribute.test_autocommit_disabled_implicit_shutdown  s    
 	tg>r   r   N)T)ri   rj   rk   rl   r   r   r   r6  r   r   r   r  r  r  r  r  r"  r%  r)  r,  r/  r2  r7  r;  r>  rA  rF  rm   rn   ro   s   @r   r   r   d  s     6..F, ,@
:@4<43343	4334? ?r   r   __main__)unittestsqlite3r   
contextlibr   test.support.os_helperr   r   test.support.script_helperr   utilr   r	   TestCaser   rr   r   r   r   r   r   ri   mainr   r   r   <module>rQ     s   .   % 1 7 ! %P#x(( P#f!H%% !J
3-x/@/@ 
33*H,=,= 3:+9X.. +9\/4X.. /4dh?(++ h?V zMMO r   