Your IP : 216.73.216.213
��YfB � @ 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 � d S)
� Nc C s d S)NZ
sqlite_testdb� r r r �>/opt/alt/python35/lib64/python3.5/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
e j e
j d k d � d d � � Z e j e
j d k d � 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.CheckToggleAutoCommit� � z.test hangs on sqlite versions older than 3.2.2c C sN | j j d � | j j d � | j t j � � | j j d � Wd QRXd S)Nzcreate table test(i)zinsert into test(i) values (5))r
r �assertRaisesr �OperationalErrorr )r r r r �CheckRaiseTimeoutr s z"TransactionTests.CheckRaiseTimeoutc C s[ | j j d � | j j d � | j t j � � | j j d � Wd QRX| 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.
zcreate table test(i)zinsert into test(i) values (5)N)r
r r% r r&