kWc@sddlZddlZddlmZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdd.dYZdd/dYZdd0dYZdd1dYZdd2dYZdd3dYZdd4dYZdejfd YZd!ejfd"YZd#ejfd$YZd%efd&YZd'efd(YZd)efd*YZ d+Z!d,Ze"d-krendS(5iN(t test_supportcCsdS(Ntfoo((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returntextscCsdS(Nubar((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnunicodescCsdS(Ni*((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnint!scCsdS(NgQ @((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnfloat#scCsdS(N(tNone(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnnull%scCs!tjtdSWdQXdS(Ntblob(Rtcheck_py3k_warningstbuffer(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnblob's cCsdS(Niil((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnlonglong*scCs dddS(Nii((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_raiseexception,scCst|tkS(N(ttypetunicode(tv((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt func_isstring/scCst|tkS(N(Rtint(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt func_isint1scCst|tkS(N(Rtfloat(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt func_isfloat3scCst|tdkS(N(RR(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt func_isnone5scCst|tkS(N(RR (R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt func_isblob7scCst|ttfo|dkS(Niil(t isinstanceRtlong(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfunc_islonglong9st AggrNoStepcBseZdZdZRS(cCsdS(N((tself((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt__init__=scCsdS(Ni((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfinalize@s(t__name__t __module__RR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR<s tAggrNoFinalizecBseZdZdZRS(cCsdS(N((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRDscCsdS(N((Rtx((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytstepGs(RR RR#(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR!Cs tAggrExceptionInInitcBs#eZdZdZdZRS(cCs dddS(Nii((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRKscCsdS(N((RR"((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR#NscCsdS(N((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRQs(RR RR#R(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR$Js  tAggrExceptionInStepcBs#eZdZdZdZRS(cCsdS(N((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRUscCs dddS(Nii((RR"((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR#XscCsdS(Ni*((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR[s(RR RR#R(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR%Ts  tAggrExceptionInFinalizecBs#eZdZdZdZRS(cCsdS(N((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR_scCsdS(N((RR"((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR#bscCs dddS(Nii((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRes(RR RR#R(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR&^s  t AggrCheckTypecBs#eZdZdZdZRS(cCs d|_dS(N(Rtval(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRiscCsRitd6td6td6tdd6td6}t||t|k|_dS(NtstrRRRR(RRRRRR R((Rt whichTypeR(ttheType((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR#ls/cCs|jS(N(R((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRps(RR RR#R(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR'hs  tAggrSumcBs#eZdZdZdZRS(cCs d|_dS(Ng(R((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRtscCs|j|7_dS(N(R((RR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR#wscCs|jS(N(R((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRzs(RR RR#R(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR,ss  t FunctionTestscBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZRS(cCsJtjd|_|jjddt|jjddt|jjddt|jjddt|jjddt|jjddt |jjd dt |jjd dt |jjd d t |jjd d t |jjdd t|jjdd t|jjdd t|jjdd tdS(Ns:memory:t returntextit returnunicodet returnintt returnfloatt returnnullt returnblobtreturnlonglongtraiseexceptiontisstringitisinttisfloattisnonetisblobt islonglong(tsqlitetconnecttcontcreate_functionRRRRRR R R RRRRRR(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytsetUp~scCs|jjdS(N(R>tclose(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyttearDownscCsEy*|jjddd|jdWntjk r@nXdS(NtblaicSsd|S(Ni((R"((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytss&should have raised an OperationalError(R>R?tfailR<tOperationalError(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncErrorOnCreates cCsUd}|}|td<|jjdd||jj}|jddS(NcSs d}|S(NcSsdS(Ni((((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytfs((RH((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytgetfuncs Rtreftestisselect reftest()(tglobalsR>R?tcursortexecute(RRIRHtcur((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncRefCounts    cCsV|jj}|jd|jd}|jt|t|j|ddS(Nsselect returntext()iR(R>RLRMtfetchonet assertEqualRR(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnTexts  cCsV|jj}|jd|jd}|jt|t|j|ddS(Nsselect returnunicode()iubar(R>RLRMRPRQRR(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnUnicodes  cCsV|jj}|jd|jd}|jt|t|j|ddS(Nsselect returnint()ii*(R>RLRMRPRQRR(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnInts  cCsn|jj}|jd|jd}|jt|t|dksZ|dkrj|jdndS(Nsselect returnfloat()ig&1 @gT㥛 @s wrong value(R>RLRMRPRQRRRE(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnFloats  cCs\|jj}|jd|jd}|jt|td|j|ddS(Nsselect returnnull()i(R>RLRMRPRQRR(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnNulls  cCso|jj}|jd|jd}tj1|jt|t|j|tdWdQXdS(Nsselect returnblob()iR( R>RLRMRPRR RQRR (RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnBlobs   cCs@|jj}|jd|jd}|j|ddS(Nsselect returnlonglong()iiil(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnLongLongs cCsk|jj}y(|jd|j|jdWn-tjk rf}|j|jddnXdS(Nsselect raiseexception()s#should have raised OperationalErroris&user-defined function raised exception( R>RLRMRPRER<RFRQtargs(RRNte((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncExceptions  cCsC|jj}|jdd|jd}|j|ddS(Nsselect isstring(?)Rii(sfoo(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamStringscCsC|jj}|jdd|jd}|j|ddS(Nsselect isint(?)i*ii(i*(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt CheckParamIntscCsC|jj}|jdd|jd}|j|ddS(Nsselect isfloat(?)gQ @ii(gQ @(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamFloatscCsC|jj}|jdd|jd}|j|ddS(Nsselect isnone(?)ii(N(R>RLRMRRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamNonescCs_|jj}tj|jdtdfWdQX|jd}|j|ddS(Nsselect isblob(?)Rii(R>RLRR RMR RPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamBlobs  cCsC|jj}|jdd|jd}|j|ddS(Nsselect islonglong(?)ii*il(l(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamLongLongs(RR R@RBRGRORRRSRTRURVRWRXR[R\R]R^R_R`Ra(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR-}s$               tAggregateTestscBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(c Cstjd|_|jj}|jdtj*|jdddddtdfWdQX|jj dd t |jj d d t |jj d d t |jj d d t |jj d d t|jj ddt|jj dd tdS(Ns:memory:s create table test( t text, i integer, f float, n, b blob ) s6insert into test(t, i, f, n, b) values (?, ?, ?, ?, ?)RigQ @Rtnostepit nofinalizetexcInittexcStept excFinalizet checkTypeitmysum(R<R=R>RLRMRR RR tcreate_aggregateRR!R$R%R&R'R,(RRN((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR@s  "cCsdS(N((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRB scCsBy'|jjddt|jdWntjk r=nXdS(NRCis&should have raised an OperationalError(R>R?R,RER<RF(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrErrorOnCreate%s cCs^|jj}y|jd|jdWn*tk rY}|j|jddnXdS(Nsselect nostep(t) from tests$should have raised an AttributeErroris+AggrNoStep instance has no attribute 'step'(R>RLRMREtAttributeErrorRQRY(RRNRZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrNoStep,s  cCsq|jj}y.|jd|jd}|jdWn-tjk rl}|j|jddnXdS(Nsselect nofinalize(t) from testis&should have raised an OperationalErrors7user-defined aggregate's 'finalize' method raised error( R>RLRMRPRER<RFRQRY(RRNR(RZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrNoFinalize4s cCsq|jj}y.|jd|jd}|jdWn-tjk rl}|j|jddnXdS(Nsselect excInit(t) from testis&should have raised an OperationalErrors7user-defined aggregate's '__init__' method raised error( R>RLRMRPRER<RFRQRY(RRNR(RZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrExceptionInInit=s cCsq|jj}y.|jd|jd}|jdWn-tjk rl}|j|jddnXdS(Nsselect excStep(t) from testis&should have raised an OperationalErrors3user-defined aggregate's 'step' method raised error( R>RLRMRPRER<RFRQRY(RRNR(RZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrExceptionInStepFs cCsq|jj}y.|jd|jd}|jdWn-tjk rl}|j|jddnXdS(Nsselect excFinalize(t) from testis&should have raised an OperationalErrors7user-defined aggregate's 'finalize' method raised error( R>RLRMRPRER<RFRQRY(RRNR(RZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrExceptionInFinalizeOs cCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('str', ?)Rii(sfoo(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamStrXscCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('int', ?)i*ii(i*(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamInt^scCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('float', ?)gQ @ii(gQ @(R>RLRMRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamFloatdscCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('None', ?)ii(N(R>RLRMRRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamNonejscCs_|jj}tj|jdtdfWdQX|jd}|j|ddS(Nsselect checkType('blob', ?)Rii(R>RLRR RMR RPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamBlobps  cCsf|jj}|jd|jdd d d g|jd|jd}|j|ddS( Nsdelete from testsinsert into test(i) values (?)i iisselect mysum(i) from testii<(i (i(i(R>RLRMt executemanyRPRQ(RRNR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckAggrSumws   (RR R@RBRkRmRnRoRpRqRrRsRtRuRvRx(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRbs         tAuthorizerTestscBs;eZedZdZdZdZdZRS(cCs<|tjkrtjS|dks.|dkr5tjStjS(Ntc2tt2(R<t SQLITE_SELECTt SQLITE_DENYt SQLITE_OK(tactiontarg1targ2tdbnametsource((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyt authorizer_cbs cCsItjd|_|jjd|jjd|jj|jdS(Ns:memory:s create table t1 (c1, c2); create table t2 (c1, c2); insert into t1 (c1, c2) values (1, 2); insert into t2 (c1, c2) values (4, 5); sselect c2 from t2(R<R=R>t executescriptRMtset_authorizerR(R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyR@s  cCsdS(N((R((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRBscCspy|jjdWnHtjk r^}|jdjdsZ|jd|jdndSX|jddS(Nsselect * from t2it prohibitedswrong exception text: %ss9should have raised an exception due to missing privileges(R>RMR<t DatabaseErrorRYtendswithRE(RRZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyttest_table_accessscCspy|jjdWnHtjk r^}|jdjdsZ|jd|jdndSX|jddS(Nsselect c2 from t1iRswrong exception text: %ss9should have raised an exception due to missing privileges(R>RMR<RRYRRE(RRZ((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyttest_column_accesss(RR t staticmethodRR@RBRR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRys    tAuthorizerRaiseExceptionTestscBseZedZRS(cCs@|tjkrtn|dks0|dkr9tntjS(NRzR{(R<R|t ValueErrorR~(RRRRR((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRs   (RR RR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRstAuthorizerIllegalTypeTestscBseZedZRS(cCs6|tjkrdS|dks+|dkr/dStjS(NgRzR{(R<R|R~(RRRRR((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRs (RR RR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRstAuthorizerLargeIntegerTestscBseZedZRS(cCs6|tjkrdS|dks+|dkr/dStjS(Nii RzR{ll(R<R|R~(RRRRR((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRs (RR RR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyRscCsmtjtd}tjtd}tjt}tj|||tjttjttjtfS(NtCheck( tunittestt makeSuiteR-RbRyt TestSuiteRRR(tfunction_suitetaggregate_suitetauthorizer_suite((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytsuites  cCs tj}|jtdS(N(RtTextTestRunnertrunR(trunner((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pyttests t__main__((((((((#Rtsqlite3R<RRRRRRRR R R RRRRRRRR!R$R%R&R'R,tTestCaseR-RbRyRRRRR(((s0/usr/lib/python2.7/sqlite3/test/userfunctions.pytsB                     x,