ó o®¸Qc@s—ddlZddlZddlZddlZd„Zdejfd„ƒYZdejfd„ƒYZd„Z d„Z e d kr“e ƒndS( iÿÿÿÿNcCsdS(Nt sqlite_testdb((((s//sys/lib/python2.7/sqlite3/test/transactions.pyt get_db_pathstTransactionTestscBskeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z RS( cCs†ytjtƒƒWntk r'nXtjtƒddƒ|_|jjƒ|_tjtƒddƒ|_ |j jƒ|_ dS(Nttimeoutg™™™™™™¹?( tostremoveRtOSErrortsqlitetconnecttcon1tcursortcur1tcon2tcur2(tself((s//sys/lib/python2.7/sqlite3/test/transactions.pytsetUp s cCs`|jjƒ|jjƒ|jjƒ|jjƒytjtƒƒWntk r[nXdS(N( R tcloseR R R RtunlinkRR(R((s//sys/lib/python2.7/sqlite3/test/transactions.pyttearDown,s     cCsi|jjdƒ|jjdƒ|jjdƒ|jjdƒ|jjƒ}|jt|ƒdƒdS(Nscreate table test(i)sinsert into test(i) values (5)screate table test2(j)sselect i from testi(R texecuteR tfetchallt assertEqualtlen(Rtres((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckDMLdoesAutoCommitBefore8s cCsY|jjdƒ|jjdƒ|jjdƒ|jjƒ}|jt|ƒdƒdS(Nscreate table test(i)sinsert into test(i) values (5)sselect i from testi(R RR RRR(RR((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckInsertStartsTransaction@s cCst|jjdƒ|jjdƒ|jjƒ|jjdƒ|jjdƒ|jjƒd}|j|dƒdS(Nscreate table test(i)sinsert into test(i) values (5)supdate test set i=6sselect i from testii(R RR tcommitR tfetchoneR(RR((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckUpdateStartsTransactionGs cCsv|jjdƒ|jjdƒ|jjƒ|jjdƒ|jjdƒ|jjƒ}|jt|ƒdƒdS(Nscreate table test(i)sinsert into test(i) values (5)sdelete from testsselect i from testi(R RR RR RRR(RR((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckDeleteStartsTransactionPs cCsŽ|jjdƒ|jjdƒ|jjƒ|jjdƒ|jjdƒ|jjƒ}|jt|ƒdƒ|j|dddƒdS(Nscreate table test(i)sinsert into test(i) values (5)sreplace into test(i) values (6)sselect i from testiii(R RR RR RRR(RR((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckReplaceStartsTransactionYs cCsâ|jjdƒ|jjdƒd|j_|j|jjdƒ|jjdƒ|jjƒ}|jt|ƒdƒd|j_|j|jjdƒ|jjdƒ|jjdƒ|jjƒ}|jt|ƒdƒdS(Nscreate table test(i)sinsert into test(i) values (5)sselect i from testitDEFERRED( R RtNoneR tisolation_levelRR RR(RR((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckToggleAutoCommitcs  cCs‚tjdkrdS|jjdƒ|jjdƒy!|jjdƒ|jdƒWn'tjk rjn|jdƒnXdS(Niiscreate table test(i)sinsert into test(i) values (5)s&should have raised an OperationalError(iii(Rtsqlite_version_infoR RR tfailtOperationalError(R((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckRaiseTimeoutsscCstjdkrdS|jjdƒ|jjdƒy!|jjdƒ|jdƒWn'tjk rjn|jdƒnX|jjƒdS(s This tests the improved concurrency with pysqlite 2.3.4. You needed to roll back con2 before you could commit con1. iiNscreate table test(i)sinsert into test(i) values (5)s&should have raised an OperationalError(iii( RR#R RR R$R%R R(R((s//sys/lib/python2.7/sqlite3/test/transactions.pyt CheckLocking‚scCs—tjdƒ}|jƒ}|jdƒ|jdƒ|jdƒ|jƒy|jƒ|jdƒWn)tjk r}n|jdƒnXdS(s… Checks if cursors on the connection are set into a "reset" state when a rollback is done on the connection. s:memory:screate table test(x)sinsert into test(x) values (5)s&select 1 union select 2 union select 3s&InterfaceError should have been raisedN(RRR RtrollbackRR$tInterfaceError(Rtcontcurte((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckRollbackCursorConsistency—s      ( t__name__t __module__RRRRRRRR"R&R'R-(((s//sys/lib/python2.7/sqlite3/test/transactions.pyRs     tSpecialCommandTestscBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs(tjdƒ|_|jjƒ|_dS(Ns:memory:(RRR*R R+(R((s//sys/lib/python2.7/sqlite3/test/transactions.pyR¬scCs4|jjdƒ|jjdƒ|jjdƒdS(Nscreate table test(i)sinsert into test(i) values (5)tvacuum(R+R(R((s//sys/lib/python2.7/sqlite3/test/transactions.pyt CheckVacuum°scCs4|jjdƒ|jjdƒ|jjdƒdS(Nscreate table test(i)sinsert into test(i) values (5)sdrop table test(R+R(R((s//sys/lib/python2.7/sqlite3/test/transactions.pytCheckDropTableµscCs4|jjdƒ|jjdƒ|jjdƒdS(Nscreate table test(i)sinsert into test(i) values (5)spragma count_changes=1(R+R(R((s//sys/lib/python2.7/sqlite3/test/transactions.pyt CheckPragmaºscCs|jjƒ|jjƒdS(N(R+RR*(R((s//sys/lib/python2.7/sqlite3/test/transactions.pyR¿s (R.R/RR2R3R4R(((s//sys/lib/python2.7/sqlite3/test/transactions.pyR0«s     cCs7tjtdƒ}tjtdƒ}tj||fƒS(NtCheck(tunittestt makeSuiteRR0t TestSuite(t default_suitetspecial_command_suite((s//sys/lib/python2.7/sqlite3/test/transactions.pytsuiteÃscCs tjƒ}|jtƒƒdS(N(R6tTextTestRunnertrunR;(trunner((s//sys/lib/python2.7/sqlite3/test/transactions.pyttestÈs t__main__( tsysRR6tsqlite3RRtTestCaseRR0R;R?R.(((s//sys/lib/python2.7/sqlite3/test/transactions.pyts   Œ