D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
python35
/
lib
/
python3.5
/
sqlite3
/
test
/
__pycache__
/
Filename :
transactions.cpython-35.pyc
back
Copy
o��YB � @ 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/python35/lib/python3.5/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)N�timeoutg�������?)�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&