Your IP : 216.73.216.213
�
e f� � @ s� d d l Z d d l Z d d l Z d d � Z Gd d � d e j � Z Gd d � d e j � Z d d � Z d
d � Z e
d k r� e � n d S)
� Nc C s d S)NZ
sqlite_testdb� r r r �>/opt/alt/python34/lib64/python3.4/sqlite3/test/transactions.py�get_db_path s r c @ s� e Z d Z d d � Z d d � Z d d � Z d d � Z d d
� Z d d � Z d
d � Z d d � Z
d d � Z d d � Z d d � Z
d S)�TransactionTestsc C s� y t j t � � Wn t k
r( Yn Xt j t � d d �| _ | j j � | _ t j t � d d �| _ | j j � | _
d S)NZtimeoutg�������?)�os�remover �OSError�sqlite�connect�con1�cursor�cur1�con2�cur2)�selfr r r �setUp s
zTransactionTests.setUpc C sa | j j � | j j � | j j � | j j � y t j t � � Wn t k
r\ Yn Xd S)N) r
�closer r r r �unlinkr r )r r r r �tearDown+ s
zTransactionTests.tearDownc C si | j j d � | j j d � | j j d � | j j d � | j j � } | j t | � d � d S)Nzcreate table test(i)zinsert into test(i) values (5)zcreate table test2(j)zselect i from test� )r
�executer �fetchall�assertEqual�len)r �resr r r �CheckDMLdoesAutoCommitBefore7 s z-TransactionTests.CheckDMLdoesAutoCommitBeforec C sY | j j d � | j j d � | j j d � | j j � } | j t | � d � d S)Nzcreate table test(i)zinsert into test(i) values (5)zselect i from testr )r
r r r r r )r r r r r �CheckInsertStartsTransaction? s
z-TransactionTests.CheckInsertStartsTransactionc C st | j j d � | j j d � | j j � | j j d � | j j d � | j j � d } | j | d � d S)Nzcreate table test(i)zinsert into test(i) values (5)zupdate test set i=6zselect i from testr � )r
r r �commitr Zfetchoner )r r r r r �CheckUpdateStartsTransactionF s
z-TransactionTests.CheckUpdateStartsTransactionc C sv | j j d � | j j d � | j j � | j j d � | j j d � | j j � } | j t | � d � d S)Nzcreate table test(i)zinsert into test(i) values (5)zdelete from testzselect i from testr )r
r r r r r r r )r r r r r �CheckDeleteStartsTransactionO s
z-TransactionTests.CheckDeleteStartsTransactionc C s� | j j d � | j j d � | j j � | j j d � | j j d � | j j � } | j t | � d � | j | d d d � d S)Nzcreate table test(i)zinsert into test(i) values (5)zreplace into test(i) values (6)zselect i from testr r r )r
r r r r r r r )r r r r r �CheckReplaceStartsTransactionX s
z.TransactionTests.CheckReplaceStartsTransactionc C s� | j j d � | j j d � d | j _ | j | j j d � | j j d � | j j � } | j t | � d � d | j _ | j | j j d � | j j d � | j j d � | j j � } | j t | � d � d S)Nzcreate table test(i)zinsert into test(i) values (5)zselect i from testr ZDEFERRED)r
r r Zisolation_levelr r r r )r r r r r �CheckToggleAutoCommitb s z&TransactionTests.CheckToggleAutoCommitc C s� t j d k r d S| j j d � | j j d � y! | j j d � | j d � Wn) t j k
rk Yn | j d � Yn Xd S)N� � zcreate table test(i)zinsert into test(i) values (5)z&should have raised an OperationalError)r# r$ r$ )r �sqlite_version_infor
r r �fail�OperationalError)r r r r �CheckRaiseTimeoutr s z"TransactionTests.CheckRaiseTimeoutc C s� t j d k r d S| j j d � | j j d � y! | j j d � | j d � Wn) t j k
rk Yn | j d � Yn X| j j � d S)z�
This tests the improved concurrency with pysqlite 2.3.4. You needed
to roll back con2 before you could commit con1.
r# r$ Nzcreate table test(i)zinsert into test(i) values (5)z&should have raised an OperationalError)r# r$ r$ ) r r% r
r r r&