Ñò
ïžòKc           @   s™   d  d k  Z  d  d k Z d  d k Z d  d k Z d „  Z d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ d „  Z	 d „  Z
 e d	 j o e
 ƒ  n d S(
   iÿÿÿÿNc           C   s   d S(   Nt   sqlite_testdb(    (    (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   get_db_path   s    t   TransactionTestsc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   sˆ   y t  i t ƒ  ƒ Wn t j
 o n Xt i t ƒ  d d ƒ|  _ |  i i ƒ  |  _ t i t ƒ  d d ƒ|  _	 |  i	 i ƒ  |  _
 d  S(   Nt   timeoutgš™™™™™¹?(   t   ost   removeR   t   OSErrort   sqlitet   connectt   con1t   cursort   cur1t   con2t   cur2(   t   self(    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   setUp    s    c         C   sb   |  i  i ƒ  |  i i ƒ  |  i i ƒ  |  i i ƒ  y t i t ƒ  ƒ Wn t j
 o n Xd  S(   N(	   R   t   closeR	   R   R   R   t   unlinkR   R   (   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   tearDown,   s    c         C   si   |  i  i d ƒ |  i  i d ƒ |  i  i d ƒ |  i i d ƒ |  i i ƒ  } |  i t | ƒ d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   create table test2(j)s   select i from testi   (   R   t   executeR   t   fetchallt   failUnlessEqualt   len(   R   t   res(    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckDMLdoesAutoCommitBefore8   s    c         C   sY   |  i  i d ƒ |  i  i d ƒ |  i i d ƒ |  i i ƒ  } |  i t | ƒ d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   select i from testi    (   R   R   R   R   R   R   (   R   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckInsertStartsTransaction@   s
    c         C   st   |  i  i d ƒ |  i  i d ƒ |  i i ƒ  |  i  i d ƒ |  i i d ƒ |  i i ƒ  d } |  i | d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   update test set i=6s   select i from testi    i   (   R   R   R	   t   commitR   t   fetchoneR   (   R   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckUpdateStartsTransactionG   s    c         C   sv   |  i  i d ƒ |  i  i d ƒ |  i i ƒ  |  i  i d ƒ |  i i d ƒ |  i i ƒ  } |  i t | ƒ d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   delete from tests   select i from testi   (   R   R   R	   R   R   R   R   R   (   R   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckDeleteStartsTransactionP   s    c         C   sŽ   |  i  i d ƒ |  i  i d ƒ |  i i ƒ  |  i  i d ƒ |  i i d ƒ |  i i ƒ  } |  i t | ƒ d ƒ |  i | d d d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   replace into test(i) values (6)s   select i from testi   i    i   (   R   R   R	   R   R   R   R   R   (   R   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckReplaceStartsTransactionY   s    c         C   sâ   |  i  i d ƒ |  i  i d ƒ d  |  i _ |  i |  i i d  ƒ |  i i d ƒ |  i i ƒ  } |  i t | ƒ d ƒ d |  i _ |  i |  i i d ƒ |  i  i d ƒ |  i i d ƒ |  i i ƒ  } |  i t | ƒ d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   select i from testi   t   DEFERRED(	   R   R   t   NoneR	   t   isolation_levelR   R   R   R   (   R   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckToggleAutoCommitc   s    c         C   s†   t  i d j  o d  S|  i i d ƒ |  i i d ƒ y! |  i i d ƒ |  i d ƒ Wn) t  i j
 o n |  i d ƒ n Xd  S(   Ni   i   s   create table test(i)s   insert into test(i) values (5)s&   should have raised an OperationalError(   i   i   i   (   R   t   sqlite_version_infoR   R   R   t   failt   OperationalError(   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckRaiseTimeouts   s    c         C   s“   t  i d j  o d S|  i i d ƒ |  i i d ƒ y! |  i i d ƒ |  i d ƒ Wn) t  i j
 o n |  i d ƒ n X|  i i ƒ  d S(   s�   
        This tests the improved concurrency with pysqlite 2.3.4. You needed
        to roll back con2 before you could commit con1.
        i   i   Ns   create table test(i)s   insert into test(i) values (5)s&   should have raised an OperationalError(   i   i   i   (	   R   R#   R   R   R   R$   R%   R	   R   (   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckLocking‚   s    (   t   __name__t
   __module__R   R   R   R   R   R   R   R"   R&   R'   (    (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyR      s   									
		t   SpecialCommandTestsc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s(   t  i d ƒ |  _ |  i i ƒ  |  _ d  S(   Ns   :memory:(   R   R   t   conR
   t   cur(   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyR   ˜   s    c         C   s4   |  i  i d ƒ |  i  i d ƒ |  i  i d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)t   vacuum(   R,   R   (   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckVacuumœ   s    c         C   s4   |  i  i d ƒ |  i  i d ƒ |  i  i d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   drop table test(   R,   R   (   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckDropTable¡   s    c         C   s4   |  i  i d ƒ |  i  i d ƒ |  i  i d ƒ d  S(   Ns   create table test(i)s   insert into test(i) values (5)s   pragma count_changes=1(   R,   R   (   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   CheckPragma¦   s    c         C   s   |  i  i ƒ  |  i i ƒ  d  S(   N(   R,   R   R+   (   R   (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyR   «   s    (   R(   R)   R   R.   R/   R0   R   (    (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyR*   —   s
   				c          C   s7   t  i t d ƒ }  t  i t d ƒ } t  i |  | f ƒ S(   Nt   Check(   t   unittestt	   makeSuiteR   R*   t	   TestSuite(   t   default_suitet   special_command_suite(    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   suite¯   s    c          C   s    t  i ƒ  }  |  i t ƒ  ƒ d  S(   N(   R2   t   TextTestRunnert   runR7   (   t   runner(    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   test´   s    t   __main__(   t   sysR   R2   t   sqlite3R   R   t   TestCaseR   R*   R7   R;   R(   (    (    (    s/   scripts/common/Lib/sqlite3/test/transactions.pyt   <module>   s   	x		