|G_Tc@s%ddlZddlZddlmZdejfdYZdZdejfdYZ dej fd YZ d ej fd YZ d ej fd YZ dej fdYZdej fdYZdej fdYZdZdZedkr!endS(iN(tSequencet MyConnectioncBseZdZRS(cOstjj|||dS(N(tsqlitet Connectiont__init__(tselftargstkwargs((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRs(t__name__t __module__R(((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRscCs<i}x/t|jD]\}}||||dSss select 1, 2(RRR!R"RR&(RR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckCustomFactoryRsc Cs tj|j_|jjdj}|j|tj|d|d}}|j|dd|j|dd|d|d}}|j|dd |j|dd |j|d dd |j|d dd |j|ddd|j|ddd|j|ddd|j|ddd|j|ddd|j|ddd|jt  |dWdQX|jt  |dWdQX|jt  |dWdQX|jt  |dWdQX|jt  |dWdQX|jt  |dWdQXdS(Nsselect 1 as a, 2 as btatbis$by name: wrong result for column 'a'itAtBs$by name: wrong result for column 'A's$by name: wrong result for column 'B'is#by index: wrong result for column 0ls#by index: wrong result for column 1lis$by index: wrong result for column -1lis$by index: wrong result for column -2ltclililC( RtRowRRR!R"Rt assertEqualt assertRaisest IndexError(RR tcol1tcol2((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckSqliteRowIndexWs:cCs<tj|j_|jjdj}x|D]}q.WdS(s$Checks if the row object is iterablesselect 1 as a, 2 as bN(RR.RRR!R"(RR R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckSqliteRowIterzs cCsUtj|j_|jjdj}t|}|j||d|dfdS(s4Checks if the row object can be converted to a tuplesselect 1 as a, 2 as bR)R*N(RR.RRR!R"ttupleR/(RR tt((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckSqliteRowAsTuples cCsgtj|j_|jjdj}t|}|j|d|d|j|d|ddS(sCChecks if the row object can be correctly converted to a dictionarysselect 1 as a, 2 as bR)R*N(RR.RRR!R"R#R/(RR R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckSqliteRowAsDicts  cCstj|j_|jjdj}|jjdj}|jjdj}|j|||j|||j||k|j||k|j||k|j||k|j|||jt |t ||j |||j t |t |dS(s6Checks if the row object compares and hashes correctlysselect 1 as a, 2 as bsselect 1 as a, 3 as bN( RR.RRR!R"R/t assertTruet assertFalsethashtassertNotEqual(Rtrow_1trow_2trow_3((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckSqliteRowHashCmpscCsotj|j_|jjdj}t|}|jtt |tt ||j |t dS(s2 Checks if the row object can act like a sequence sselect 1 as a, 2 as bN( RR.RRR!R"R6R/R&treversedRR(RR tas_tuple((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckSqliteRowAsSequences  (cCs|jjdS(N(RR(R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRs( RR RR(R4R5R8R9RARDR(((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyR%Ns   #     tTextFactoryTestscBs>eZdZdZdZdZdZdZRS(cCstjd|_dS(Ns:memory:(RRR(R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRscCsNtdd}|jjd|fj}|jt|dtddS(Ns sterreichtlatin1sselect ?istype of row[0] must be unicode(tunicodeRR!R"R/ttype(RtaustriaR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyt CheckUnicodescCszt|j_tdd}|jjd|fj}|jt|dtd|j|d|jdddS(Ns sterreichRFsselect ?istype of row[0] must be strsutf-8s(column must equal original data in UTF-8( tstrRt text_factoryRGR!R"R/RHtencode(RRIR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyt CheckStrings  cCsd|j_tdd}|jjd|jdfj}|jt|dtd|j|dj dddS( NcSst|ddS(Nsutf-8tignore(RG(tx((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyR'ss sterreichRFsselect ?istype of row[0] must be unicodeureichs!column must contain original data( RRLRGR!RMR"R/RHR:tendswith(RRIR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyt CheckCustoms 'cCstj|j_tdd}td}|jjd|fj}|jjd|fj}|jt|dtd|jt|dt ddS(Ns sterreichRFt Deutchlandsselect ?is%type of non-ASCII row must be unicodes"type of ASCII-only row must be str( RtOptimizedUnicodeRRLRGR!R"R/RHRK(RRItgermanyta_rowtd_row((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckOptimizedUnicodes cCs|jjdS(N(RR(R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRs(RR RRJRNRRRXR(((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyREs      t%TextFactoryTestsWithEmbeddedZeroBytescBs>eZdZdZdZdZdZdZRS(cCs9tjd|_|jjd|jjdddS(Ns:memory:screate table test (value text)s#insert into test (value) values (?)tab(RZ(RRRR!(R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRscCsJ|jjdj}|jt|dt|j|dddS(Nsselect value from testiRZ(RR!R"tassertIsRHRGR/(RR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRNscCsYd|j_|jjdj}|jt|dt|j|dddS(NcSs|S(N((RP((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyR'ssselect value from testiRZ(RRLR!R"R[RHRKR/(RR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRRscCsYtj|j_|jjdj}|jt|dt|j |dddS(Nsselect value from testiRZ( RRTRRLR!R"R[RHRKR/(RR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckOptimizedUnicodeAsStringscCs|tj|j_|jjd|jjdd|jjdj}|jt|dt|j |dddS(Nsdelete from tests#insert into test (value) values (?)uäösselect value from testi(uäö( RRTRRLR!R"R[RHRGR/(RR ((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytCheckOptimizedUnicodeAsUnicodes cCs|jjdS(N(RR(R((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRs(RR RRNRRR\R]R(((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyRYs      cCstjtd}tjtd}tjtd}tjtd}tjtd}tjtd}tj||||||fS(NtCheck( tunittestt makeSuiteRRR R%RERYt TestSuite(tconnection_suitet cursor_suitetrow_suite_compatt row_suitet text_suitettext_zero_bytes_suite((s0/usr/local/lib/python2.7/sqlite3/test/factory.pytsuitescCs tj}|jtdS(N(R_tTextTestRunnertrunRh(trunner((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyttests t__main__(R_tsqlite3Rt collectionsRRRRRRtTestCaseRRR R%RERYRhRlR(((s0/usr/local/lib/python2.7/sqlite3/test/factory.pyts     b#&