asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYhY@@sddlZddlZddlZz ddlZWney:dZYn0GdddejZGdddejZGdddejZ e ej dkd Gd d d ejZ Gd d d ejZ eedGdddejZGdddejZddZddZedkredS)Nc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)SqliteTypeTestscCs(td|_|j|_|jddS)N:memory:z9create table test(i integer, s varchar, f number, b blob)sqliteconnectconcursorcurexecuteselfr ./usr/local/lib/python3.9/sqlite3/test/types.pysetUp"s  zSqliteTypeTests.setUpcCs|j|jdSNr closerr r r rtearDown's zSqliteTypeTests.tearDowncCs8|jdd|jd|j}||dddS)Ninsert into test(s) values (?)) Österreichzselect s from testrrr r fetchone assertEqualr rowr r r CheckString+s  zSqliteTypeTests.CheckStringcCs8|jdd|jd|j}||dddSNinsert into test(i) values (?))*select i from testrrrrr r r CheckSmallInt1s  zSqliteTypeTests.CheckSmallIntcCs>d}|jd|f|jd|j}||d|dSNlrrrrr numrr r r CheckLargeInt7s   zSqliteTypeTests.CheckLargeIntcCs>d}|jd|f|jd|j}||d|dS)NQ @insert into test(f) values (?)select f from testrrr valrr r r CheckFloat>s   zSqliteTypeTests.CheckFloatcCsFd}t|}|jd|f|jd|j}||d|dS)NGuglhupfinsert into test(b) values (?)select b from testr memoryviewr r rrr sampler)rr r r CheckBlobEs   zSqliteTypeTests.CheckBlobcCs*|jd|j}||dddS)Nuselect 'Österreich'rrrrr r rCheckUnicodeExecuteMs  z#SqliteTypeTests.CheckUnicodeExecuteN) __name__ __module__ __qualname__rrrr r$r*r2r3r r r rr!src@seZdZGdddZGdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$DeclTypesTestsc@s,eZdZddZddZddZddZd S) zDeclTypesTests.FoocCst|tr|d}||_dS)Nzutf-8) isinstancebytesdecoder))r Z_valr r r__init__Ts  zDeclTypesTests.Foo.__init__cCst|tjstS|j|jkSr)r8r7FooNotImplementedr))r otherr r r__eq__[s zDeclTypesTests.Foo.__eq__cCs|tjur|jSdSdSr)rPrepareProtocolr)r protocolr r r __conform__`s zDeclTypesTests.Foo.__conform__cCs d|jS)N<%s>)r)r r r r__str__fszDeclTypesTests.Foo.__str__N)r4r5r6r;r?rCrEr r r rr<Ssr<c@seZdZddZddZdS)zDeclTypesTests.BadConformcCs ||_dSrexc)r rGr r rr;jsz"DeclTypesTests.BadConform.__init__cCs |jdSrrFrAr r rrClsz%DeclTypesTests.BadConform.__conform__N)r4r5r6r;rCr r r r BadConformisrHcCsztjdtjd|_|j|_|jdddtjd<ddtjd<tj tjd <tj tjd <d dtjd <t tjd <dS)NrZ detect_typeszpcreate table test(i int, s str, f float, b bool, u unicode, foo foo, bin blob, n1 number, n2 number(5), bad bad)cSsdS)N皙G@r xr r ruz&DeclTypesTests.setUp..FLOATcSs tt|Sr)boolintrKr r rrMxrNBOOLFOOBADcSsdS)NWRONGr rKr r rrM{rNrUNUMBER) rrPARSE_DECLTYPESrrr r convertersr7r<rHfloatr r r rros    zDeclTypesTests.setUpcCsHtjd=tjd=tjd=tjd=tjd=tjd=|j|jdS)NrOrRrSrTrUrVrrXr rrr r r rr~s zDeclTypesTests.tearDowncCs8|jdd|jd|j}||dddS)Nr)fooz!select s as "s [WRONG]" from testrr[rrr r rrs  zDeclTypesTests.CheckStringcCs8|jdd|jd|j}||dddSrrrr r rr s  zDeclTypesTests.CheckSmallIntcCs>d}|jd|f|jd|j}||d|dSr!rr"r r rr$s   zDeclTypesTests.CheckLargeIntcCs>d}|jd|f|jd|j}||dddS)Nr%r&r'rrJrr(r r rr*s   zDeclTypesTests.CheckFloatcCsx|jdd|jd|j}||dd|jd|jdd|jd|j}||dddS) Nr,)Fr-rFzdelete from test)TT)r r rZassertIsrr r r CheckBools     zDeclTypesTests.CheckBoolcCs>d}|jd|f|jd|j}||d|dS)Nrzinsert into test(u) values (?)zselect u from testrrr(r r r CheckUnicodes   zDeclTypesTests.CheckUnicodecCsDtd}|jd|f|jd|j}||d|dS)NZblaz insert into test(foo) values (?)zselect foo from testr)r7r<r r rrr(r r rCheckFoos    zDeclTypesTests.CheckFoocCstt}|tj |jd|fWdn1s<0Y|tj"|jdd|iWdn1sz0Ytt}|t |jd|fWdn1s0Y|t"|jdd|iWdn1s0YdS)Nz insert into test(bad) values (?)z#insert into test(bad) values (:val)r)) r7rH TypeError assertRaisesrInterfaceErrorr r KeyboardInterruptr r)r r rCheckErrorInConforms .0  . z"DeclTypesTests.CheckErrorInConformcCsTGddd}|}|tj |jd|fWdn1sF0YdS)Nc@s eZdZdS)z/DeclTypesTests.CheckUnsupportedSeq..BarNr4r5r6r r r rBarrNrfr&r`rrar r r rfr)r r rCheckUnsupportedSeqsz"DeclTypesTests.CheckUnsupportedSeqcCsVGddd}|}|tj"|jdd|iWdn1sH0YdS)Nc@s eZdZdS)z0DeclTypesTests.CheckUnsupportedDict..BarNrer r r rrfrNrfz!insert into test(f) values (:val)r)rgrhr r rCheckUnsupportedDictsz#DeclTypesTests.CheckUnsupportedDictcCsFd}t|}|jd|f|jd|j}||d|dS)Nr+z insert into test(bin) values (?)zselect bin from testrr.r0r r rr2s   zDeclTypesTests.CheckBlobcCs4|jd|jdd}|t|tdS)Nzinsert into test(n1) values (5)zselect n1 from testrr r rrtyperYr valuer r r CheckNumber1s zDeclTypesTests.CheckNumber1cCs4|jd|jdd}|t|tdS)z.rScSsd|dS)NrDrsrtrKr r rrMrNBARcSsddS)Nrr rKr r rrMrNEXCcSsdS)NMARKERr rKr r rrMrNB1B1)rrPARSE_COLNAMESrrr r rXr r r rrs  zColNamesTests.setUpcCs8tjd=tjd=tjd=tjd=|j|jdS)NrSrurwryrZr r r rrs  zColNamesTests.tearDowncCs8|jdd|jd|jd}||ddS)ze Assures that the declared type is not used when PARSE_DECLTYPES is not set. insert into test(x) values (?)xxxselect x from testrr}Nrrcr r rCheckDeclTypeNotUseds z"ColNamesTests.CheckDeclTypeNotUsedcCs8|jdd|jd|jd}||ddS)Nr{rr~rrrcr r r CheckNones zColNamesTests.CheckNonecCsP|jdd|jd|jd}||d||jjddddS)Nr{r|z!select x as "x y [bar]" from testrzzx y)r r rr descriptionrcr r r CheckColNames   zColNamesTests.CheckColNamecCs*|jd|jd}||ddS)Nzselect 'other' as "x [b1b1]"rrxrrcr r rCheckCaseInConverterNames z&ColNamesTests.CheckCaseInConverterNamecCs(|jd||jjddddS)zq cursor.description should at least provide the column name(s), even if no row returned. zselect * from test where 0 = 1rrLN)r r rrr r r rCheckCursorDescriptionNoRow#s z)ColNamesTests.CheckCursorDescriptionNoRowcCs|jd||jjdS)Ninsert into test values (1))r r Z assertIsNonerr r r rCheckCursorDescriptionInsert+s z*ColNamesTests.CheckCursorDescriptionInsertN) r4r5r6rrrrrrrrr r r rrqs   rq)rzCTEs not supportedc@s4eZdZddZddZddZddZd d Zd S) CommonTableExpressionTestscCs(td|_|j|_|jddS)Nrrrrr r r rr3s  z CommonTableExpressionTests.setUpcCs|j|jdSrrr r r rr8s z#CommonTableExpressionTests.tearDowncCs6|jd||jj||jjddddS)Nz(with one as (select 1) select * from oner1r r ZassertIsNotNonerrr r r rCheckCursorDescriptionCTESimple<s z:CommonTableExpressionTests.CheckCursorDescriptionCTESimplecCsN|jd|jd|jd||jj||jjddddS)Nzinsert into test values(1)zinsert into test values(2)z:with testCTE as (select * from test) select * from testCTErrLrr r r r)CheckCursorDescriptionCTESMultipleColumnsAs    zDCommonTableExpressionTests.CheckCursorDescriptionCTESMultipleColumnscCst|jd|jd||jj||jjddd|jd||jj||jjddddS)Nrz?with bar as (select * from test) select * from test where x = 1rrLz?with bar as (select * from test) select * from test where x = 2rr r r rCheckCursorDescriptionCTEHs   z4CommonTableExpressionTests.CheckCursorDescriptionCTEN)r4r5r6rrrrrr r r rr0s rc@s4eZdZddZeeZddZddZddZd S) ObjectAdaptationTestscCst|Sr)rY)objr r rcastSszObjectAdaptationTests.castcCsDtd|_z tjt=Wn Yn0tttj|j|_ dS)Nr) rrradaptersrQZregister_adapterrrrr r r r rrWs  zObjectAdaptationTests.setUpcCs&tjttjf=|j|jdSr)rrrQr@r rrr r r rr`s zObjectAdaptationTests.tearDowncCs0|jdd|jd}|t|tdS)Nzselect ?)rrkrcr r rCheckCasterIsUsedesz'ObjectAdaptationTests.CheckCasterIsUsedN)r4r5r6r staticmethodrrrr r r rrRs  rz requires zlibc@s4eZdZddZeeZddZddZddZd S) BinaryConverterTestscCs t|Sr)zlib decompress)sr r rconvertlszBinaryConverterTests.convertcCs$tjdtjd|_tdtjdS)NrrIbin)rrrzrZregister_converterrrr r r rrpszBinaryConverterTests.setUpcCs|jdSr)rrr r r rrtszBinaryConverterTests.tearDowncCs6d}|jdtt|fd}|||dS)NsFabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgzselect ? as "x [bin]"r)rr r/rcompressrr)r Ztestdataresultr r rCheckBinaryInputForConverterws"z1BinaryConverterTests.CheckBinaryInputForConverterN)r4r5r6rrrrrr r r rrjs rc@sVeZdZddZddZddZddZee j d kd d d Z d dZ ddZ dS) DateTimeTestscCs.tjdtjd|_|j|_|jddS)NrrIz'create table test(d date, ts timestamp))rrrWrrr r r r r rr}s zDateTimeTests.setUpcCs|j|jdSrrr r r rrs zDateTimeTests.tearDowncCsHtddd}|jd|f|jd|jd}|||dS)Nzinsert into test(d) values (?)zselect d from testr)rZDater r rr)r dZd2r r rCheckSqliteDates  zDateTimeTests.CheckSqliteDatecCsNtdddddd}|jd|f|jd|jd}|||dS) Nrrrrinsert into test(ts) values (?)select ts from testrZ Timestampr r rrr tsZts2r r rCheckSqliteTimestamps  z"DateTimeTests.CheckSqliteTimestamp)rz0the date functions are available on 3.1 or latercCsVtj}|jd|jd|jd}|t|tj||j|jdS)Nz/insert into test(ts) values (current_timestamp)rr)datetimeZutcnowr r rrrlZyear)r Znowrr r rCheckSqlTimestamps    zDateTimeTests.CheckSqlTimestampc CsPtddddddd}|jd|f|jd |jd}|||dS) Nrrrrrri rrrrr r rCheckDateTimeSubSecondss  z%DateTimeTests.CheckDateTimeSubSecondsc CsPtddddddd}|jd|f|jd |jd}|||dS) Nrrrrrri!rrrrr r r$CheckDateTimeSubSecondsFloatingPoints  z2DateTimeTests.CheckDateTimeSubSecondsFloatingPointN)r4r5r6rrrrunittestskipIfrsqlite_version_inforrrr r r rr|s  rc Cslttd}ttd}ttd}ttd}ttd}ttd}ttd}t |||||||fS)NZCheck) rZ makeSuiterr7rqrrrrZ TestSuite)Zsqlite_type_suiteZdecltypes_type_suiteZcolnames_type_suiteZadaptation_suiteZ bin_suiteZ date_suiteZ cte_suiter r rsuites       rcCst}|tdSr)rZTextTestRunnerrunr)Zrunnerr r rtestsr__main__)rrZsqlite3rr ImportErrorZTestCaserr7rqrrrrZ skipUnlessrrrrr4r r r rs(   1 ?! 0