oQc@sddlZddlZdZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdd-dYZdd.dYZdd/dYZdd0dYZdd1dYZdd2dYZdd3dYZdejfdYZd ejfd!YZd"ejfd#YZd$efd%YZd&efd'YZd(efd)YZd*Zd+Z e!d,kre ndS(4iNcCsdS(Ntfoo((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returntextscCsdS(Nubar((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnunicodescCsdS(Ni*((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnint scCsdS(NgQ @((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnfloat"scCsdS(N(tNone(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnnull$scCs tdS(Ntblob(tbuffer(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnblob&scCsdS(Niil((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_returnlonglong(scCs dddS(Nii((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_raiseexception*scCst|tkS(N(ttypetunicode(tv((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt func_isstring-scCst|tkS(N(R tint(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt func_isint/scCst|tkS(N(R tfloat(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt func_isfloat1scCst|tdkS(N(R R(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt func_isnone3scCst|tkS(N(R R(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt func_isblob5scCst|ttfo|dkS(Niil(t isinstanceRtlong(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfunc_islonglong7st AggrNoStepcBseZdZdZRS(cCsdS(N((tself((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt__init__;scCsdS(Ni((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfinalize>s(t__name__t __module__RR(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR:s tAggrNoFinalizecBseZdZdZRS(cCsdS(N((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRBscCsdS(N((Rtx((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytstepEs(RRRR!(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRAs tAggrExceptionInInitcBs#eZdZdZdZRS(cCs dddS(Nii((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRIscCsdS(N((RR ((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR!LscCsdS(N((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyROs(RRRR!R(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR"Hs  tAggrExceptionInStepcBs#eZdZdZdZRS(cCsdS(N((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRSscCs dddS(Nii((RR ((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR!VscCsdS(Ni*((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRYs(RRRR!R(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR#Rs  tAggrExceptionInFinalizecBs#eZdZdZdZRS(cCsdS(N((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR]scCsdS(N((RR ((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR!`scCs dddS(Nii((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRcs(RRRR!R(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR$\s  t AggrCheckTypecBs#eZdZdZdZRS(cCs d|_dS(N(Rtval(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRgscCsRitd6td6td6tdd6td6}t||t|k|_dS(NtstrRRRR(R RRR RRR&(Rt whichTypeR&ttheType((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR!js/cCs|jS(N(R&(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRns(RRRR!R(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR%fs  tAggrSumcBs#eZdZdZdZRS(cCs d|_dS(Ng(R&(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRrscCs|j|7_dS(N(R&(RR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR!uscCs|jS(N(R&(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRxs(RRRR!R(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR*qs  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/sys/lib/python2.7/sqlite3/test/userfunctions.pytsetUp|scCs|jjdS(N(R<tclose(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyttearDownscCsEy*|jjddd|jdWntjk r@nXdS(NtblaicSsd|S(Ni((R ((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytss&should have raised an OperationalError(R<R=tfailR:tOperationalError(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncErrorOnCreates cCsUd}|}|td<|jjdd||jj}|jddS(NcSs d}|S(NcSsdS(Ni((((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytfs((RF((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytgetfuncs Rtreftestisselect reftest()(tglobalsR<R=tcursortexecute(RRGRFtcur((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncRefCounts    cCsV|jj}|jd|jd}|jt|t|j|ddS(Nsselect returntext()iR(R<RJRKtfetchonet assertEqualR R (RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnTexts  cCsV|jj}|jd|jd}|jt|t|j|ddS(Nsselect returnunicode()iubar(R<RJRKRNROR R (RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnUnicodes  cCsV|jj}|jd|jd}|jt|t|j|ddS(Nsselect returnint()ii*(R<RJRKRNROR R(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnInts  cCsn|jj}|jd|jd}|jt|t|dksZ|dkrj|jdndS(Nsselect returnfloat()ig&1 @gS㥛 @s wrong value(R<RJRKRNROR RRC(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnFloats  cCs\|jj}|jd|jd}|jt|td|j|ddS(Nsselect returnnull()i(R<RJRKRNROR R(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnNulls  cCs\|jj}|jd|jd}|jt|t|j|tddS(Nsselect returnblob()iR(R<RJRKRNROR R(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncReturnBlobs  cCs@|jj}|jd|jd}|j|ddS(Nsselect returnlonglong()iiil(R<RJRKRNRO(RRLR&((s0/sys/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<RJRKRNRCR:RDROtargs(RRLte((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckFuncExceptions  cCsC|jj}|jdd|jd}|j|ddS(Nsselect isstring(?)Rii(sfoo(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamStringscCsC|jj}|jdd|jd}|j|ddS(Nsselect isint(?)i*ii(i*(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt CheckParamIntscCsC|jj}|jdd|jd}|j|ddS(Nsselect isfloat(?)gQ @ii(gQ @(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamFloatscCsC|jj}|jdd|jd}|j|ddS(Nsselect isnone(?)ii(N(R<RJRKRRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamNonescCsL|jj}|jdtdf|jd}|j|ddS(Nsselect isblob(?)Rii(R<RJRKRRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamBlobscCsC|jj}|jdd|jd}|j|ddS(Nsselect islonglong(?)ii*il(l(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckParamLongLongs(RRR>R@RERMRPRQRRRSRTRURVRYRZR[R\R]R^R_(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR+{s$               tAggregateTestscBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(cCstjd|_|jj}|jd|jdddddtdf|jjdd t|jjd d t |jjd d t |jjd d t |jjd d t |jjddt |jjdd 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<RJRKRRtcreate_aggregateRRR"R#R$R%R*(RRL((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR>s cCsdS(N((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR@scCsBy'|jjddt|jdWntjk r=nXdS(NRAis&should have raised an OperationalError(R<R=R*RCR:RD(R((s0/sys/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<RJRKRCtAttributeErrorRORW(RRLRX((s0/sys/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<RJRKRNRCR:RDRORW(RRLR&RX((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrNoFinalize/s 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<RJRKRNRCR:RDRORW(RRLR&RX((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrExceptionInInit8s 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<RJRKRNRCR:RDRORW(RRLR&RX((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrExceptionInStepAs 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<RJRKRNRCR:RDRORW(RRLR&RX((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrExceptionInFinalizeJs cCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('str', ?)Rii(sfoo(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamStrSscCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('int', ?)i*ii(i*(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamIntYscCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('float', ?)gQ @ii(gQ @(R<RJRKRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamFloat_scCsC|jj}|jdd|jd}|j|ddS(Nsselect checkType('None', ?)ii(N(R<RJRKRRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamNoneescCsL|jj}|jdtdf|jd}|j|ddS(Nsselect checkType('blob', ?)Rii(R<RJRKRRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckParamBlobkscCsf|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<RJRKt executemanyRNRO(RRLR&((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytCheckAggrCheckAggrSumqs   (RRR>R@RiRkRlRmRnRoRpRqRrRsRtRv(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR`s         tAuthorizerTestscBs;eZedZdZdZdZdZRS(cCs<|tjkrtjS|dks.|dkr5tjStjS(Ntc2tt2(R:t SQLITE_SELECTt SQLITE_DENYt SQLITE_OK(tactiontarg1targ2tdbnametsource((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyt authorizer_cbzs 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 executescriptRKtset_authorizerR(R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR>s  cCsdS(N((R((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyR@scCspy|jjdWnHtjk r^}|jdjdsZ|jd|jdndSX|jddS(Nsselect * from t2it prohibitedswrong exception text: %ss9should have raised an exception due to missing privileges(R<RKR:t DatabaseErrorRWtendswithRC(RRX((s0/sys/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<RKR:RRWRRC(RRX((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyttest_column_accesss(RRt staticmethodRR>R@RR(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRwys    tAuthorizerRaiseExceptionTestscBseZedZRS(cCs@|tjkrtn|dks0|dkr9tntjS(NRxRy(R:Rzt ValueErrorR|(R}R~RRR((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRs   (RRRR(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRstAuthorizerIllegalTypeTestscBseZedZRS(cCs6|tjkrdS|dks+|dkr/dStjS(NgRxRy(R:RzR|(R}R~RRR((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRs (RRRR(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRstAuthorizerLargeIntegerTestscBseZedZRS(cCs6|tjkrdS|dks+|dkr/dStjS(Nii RxRyll(R:RzR|(R}R~RRR((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRs (RRRR(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyRscCsmtjtd}tjtd}tjt}tj|||tjttjttjtfS(NtCheck( tunittestt makeSuiteR+R`Rwt TestSuiteRRR(tfunction_suitetaggregate_suitetauthorizer_suite((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pytsuites  cCs tj}|jtdS(N(RtTextTestRunnertrunR(trunner((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyttests t__main__(((((((("Rtsqlite3R:RRRRRR R R RRRRRRRRR"R#R$R%R*tTestCaseR+R`RwRRRRRR(((s0/sys/lib/python2.7/sqlite3/test/userfunctions.pyts@                     v,