§
    öÛg[e  ã                   óv   — d dl Z d dlZddlmZ  G d„ de j        ¦  «        Zedk    r e j        ¦   «          dS dS )é    Né   )Úpg_tmpc                   óŠ  — e Zd ZdZddlmc mZ dZedz   Zdez  Z	dez  Z
dez  Zd	ez  Zd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd
Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'g d$¢Z(d%„ Z)d&„ Z*d'„ Z+d(„ Z,d)„ Z-d*„ Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:d7„ Z;d8„ Z<d9„ Z=d:„ Z>d;„ Z?dS )<Útest_dbapi20a  
	Test a database self.driver for DB API 2.0 compatibility.
	This implementation tests Gadfly, but the TestCase
	is structured so that other self.drivers can subclass this 
	test case to ensure compiliance with the DB-API. It is 
	expected that this TestCase may be expanded in the future
	if ambiguities or edge conditions are discovered.

	The 'Optional Extensions' are not yet being tested.

	self.drivers should subclass this test, overriding setUp, tearDown,
	self.driver, connect_args and connect_kw_args. Class specification
	should be as follows:

	import dbapi20 
	class mytest(dbapi20.DatabaseAPI20Test):
		[...] 

	__rcs_id__  = 'Id: dbapi20.py,v 1.10 2003/10/09 03:14:14 zenzen Exp'
	__version__ = 'Revision: 1.10'
	__author__ = 'Stuart Bishop <zen@shangri-la.dropbear.id.au>'
	r   NÚdbapi20test_Úboozez'create temp table %s (name varchar(20))z.create temp table %sbarflys (name varchar(20))zdrop table %sboozezdrop table %sbarflysÚlowerc                 ó:   — |                      | j        ¦  «         d S ©N)ÚexecuteÚddl1©ÚselfÚcursors     úR/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_dbapi20.pyÚexecuteDDL1ztest_dbapi20.executeDDL1Z   ó   € Ø‡.‚.�”ÑÔÐÐÐó    c                 ó:   — |                      | j        ¦  «         d S r   )r   Úddl2r   s     r   ÚexecuteDDL2ztest_dbapi20.executeDDL2]   r   r   c                 óT  — |                       ¦   «         }	 |                     ¦   «         }| j        | j        fD ]A}	 |                     |¦  «         |                     ¦   «          Œ-# | j        j        $ r Y Œ>w xY w	 |                     ¦   «          d S # |                     ¦   «          w xY wr   )	Ú_connectr   Úxddl1Úxddl2r   ÚcommitÚdriverÚErrorÚclose)r   ÚconÚcurÚddls       r   ÚtearDownztest_dbapi20.tearDown`   s°   € Ø�Š‰Œ€#ðØ	�Š‰Œ€3ØŒz˜4œ:Ð&ð 
ð 
€sð
Ø‡[‚[�ÑÔÐØ‡Z‚Z�\„\€\€\øØŒ;Ôð 
ð 
ð 
ð 
€Tð
øøøð	
ð ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs.   –$B »)A%Á$B Á%A7Á4B Á6A7Á7B ÂB'c                 ó¤   — t          j        ¦   «          t           j                             ¦   «         \  }}| j                             d||¬¦  «        S )NÚtest)ÚuserÚhostÚport)r   ÚinitÚclusterÚaddressr   Úconnect)r   r'   r(   s      r   r   ztest_dbapi20._connecto   sJ   € Ý„+�-„-€-ÝŒ~×%Ò%Ñ'Ô'�*€$ˆØ	Œ×	Ò	Ø
˜ dð 
ñ 
ô 
ð r   c                 óV   — |                       ¦   «         }|                     ¦   «          d S r   )r   r   ©r   r    s     r   Útest_connectztest_dbapi20.test_connectv   s    € Ø�Š‰Œ€#Ø‡)‚)�+„+€+€+€+r   c                 ó˜   — 	 | j         j        }|                      |d¦  «         d S # t          $ r |                      d¦  «         Y d S w xY w)Nz2.0zDriver doesn't define apilevel)r   ÚapilevelÚassertEqualÚAttributeErrorÚfail)r   r1   s     r   Útest_apilevelztest_dbapi20.test_apilevelz   sd   € ð/àŒkÔ"€8à×Ò�H˜UÑ#Ô#Ð#Ð#Ð#øÝ	ð /ð /ð /Ø‡9‚9Ð-Ñ.Ô.Ð.Ð.Ð.Ð.ð/øøøs   ‚"& ¦A	ÁA	c                 óš   — 	 | j         j        }|                      |dv ¦  «         d S # t          $ r |                      d¦  «         Y d S w xY w)N)r   é   r   é   z"Driver doesn't define threadsafety)r   ÚthreadsafetyÚ
assertTruer3   r4   )r   r9   s     r   Útest_threadsafetyztest_dbapi20.test_threadsafetyƒ   se   € ð3à”+Ô*€<à‡?‚?�< 9Ð,Ñ-Ô-Ð-Ð-Ð-øÝ	ð 3ð 3ð 3Ø‡9‚9Ð1Ñ2Ô2Ð2Ð2Ð2Ð2ð3øøøó   ‚#' §A
Á	A
c                 óš   — 	 | j         j        }|                      |dv ¦  «         d S # t          $ r |                      d¦  «         Y d S w xY w)N)ÚqmarkÚnumericÚnamedÚformatÚpyformatz Driver doesn't define paramstyle)r   Ú
paramstyler:   r3   r4   )r   rC   s     r   Útest_paramstyleztest_dbapi20.test_paramstyleŒ   sv   € ð1à”Ô&€:à‡?‚?�:ð "ð ñ ô ð ð ð øõ 
ð 1ð 1ð 1Ø‡9‚9Ð/Ñ0Ô0Ð0Ð0Ð0Ð0ð1øøør<   c                 ó  — |                       t          | j        j        | j        j        ¦  «        ¦  «         |                       t          | j        j        | j        j        ¦  «        ¦  «         |                       t          | j        j        | j        j        ¦  «        ¦  «         |                       t          | j        j        | j        j        ¦  «        ¦  «         |                       t          | j        j        | j        j        ¦  «        ¦  «         |                       t          | j        j	        | j        j        ¦  «        ¦  «         |                       t          | j        j
        | j        j        ¦  «        ¦  «         d S r   )r:   Ú
issubclassr   ÚInterfaceErrorr   ÚDatabaseErrorÚOperationalErrorÚIntegrityErrorÚInternalErrorÚProgrammingErrorÚNotSupportedError©r   s    r   Útest_Exceptionsztest_dbapi20.test_Exceptions—   s  € ð ‡/‚/•*˜Tœ[Ô7¸¼Ô8IÑJÔJÑKÔKÐKØ‡/‚/•*˜Tœ[Ô6°t´{Ô7HÑIÔIÑJÔJÐJØ‡/‚/•*˜Tœ[Ô9¸$¼+Ô:KÑLÔLÑMÔMÐMØ‡/‚/•*˜Tœ[Ô7¸¼Ô8IÑJÔJÑKÔKÐKØ‡/‚/•*˜Tœ[Ô6°t´{Ô7HÑIÔIÑJÔJÐJØ‡/‚/•*˜Tœ[Ô9¸$¼+Ô:KÑLÔLÑMÔMÐMØ‡/‚/•*˜Tœ[Ô:¸4¼;Ô;LÑMÔMÑNÔNÐNÐNÐNr   c                 óê  — |                       ¦   «         }	 | j        }|                      |j        |j        u ¦  «         |                      |j        |j        u ¦  «         |                      |j        |j        u ¦  «         |                      |j        |j        u ¦  «         |                      |j        |j        u ¦  «         |                      |j        |j        u ¦  «         |                      |j	        |j	        u ¦  «         |                      |j
        |j
        u ¦  «         |                      |j        |j        u ¦  «         |                     ¦   «          d S # |                     ¦   «          w xY wr   )r   r   r:   ÚWarningr   rG   rH   rI   rJ   rK   rL   rM   r   )r   r    Údrvs      r   Ú%test_ExceptionsAsConnectionAttributesz2test_dbapi20.test_ExceptionsAsConnectionAttributes¢   sA  € ð 	�Š‰Œ€#ðØ	Œ€3Ø‡?‚?�3”; #¤+Ð-Ñ.Ô.Ð.Ø‡?‚?�3”9 ¤	Ð)Ñ*Ô*Ð*Ø‡?‚?�3Ô%¨Ô);Ð;Ñ<Ô<Ð<Ø‡?‚?�3Ô$¨Ô(9Ð9Ñ:Ô:Ð:Ø‡?‚?�3Ô'¨3Ô+?Ð?Ñ@Ô@Ð@Ø‡?‚?�3Ô%¨Ô);Ð;Ñ<Ô<Ð<Ø‡?‚?�3Ô$¨Ô(9Ð9Ñ:Ô:Ð:Ø‡?‚?�3Ô'¨3Ô+?Ð?Ñ@Ô@Ð@Ø‡?‚?�3Ô(¨CÔ,AÐAÑBÔBÐBà‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –D0E ÅE2c                 ó²   — |                       ¦   «         }	 |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          w xY wr   )r   r   r   r.   s     r   Útest_commitztest_dbapi20.test_commit¸   sD   € Ø�Š‰Œ€#ðà‡:‚:�<„<€<à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøó   –A  Á Ac                 ó   — |                       ¦   «         }	 t          |d¦  «        r+	 |                     ¦   «          n# | j        j        $ r Y nw xY w|                     ¦   «          d S # |                     ¦   «          w xY w)NÚrollback)r   ÚhasattrrX   r   rM   r   r.   s     r   Útest_rollbackztest_dbapi20.test_rollbackÀ   s„   € Ø�Š‰Œ€#ðÝˆc�*ÑÔð 
ð
Ø‡\‚\�^„^€^€^øØŒ;Ô(ð 
ð 
ð 
Ø	€Tð
øøøð ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs+   –A' §< »A' ¼AÁA' ÁAÁA' Á'A=c                 ó²   — |                       ¦   «         }	 |                     ¦   «         }|                     ¦   «          d S # |                     ¦   «          w xY wr   )r   r   r   ©r   r    r!   s      r   Útest_cursorztest_dbapi20.test_cursorÍ   sD   € Ø�Š‰Œ€#ðØ	�Š‰Œ€3à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøørV   c                 ó|  — |                       ¦   «         }	 |                     ¦   «         }|                     ¦   «         }|                      |¦  «         |                     d| j        z  ¦  «         |                     d| j        z  ¦  «         |                     ¦   «         }|                      t          |¦  «        d¦  «         |                      t          |d         ¦  «        d¦  «         |                      |d         d         d¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nú.insert into %sbooze values ('Victoria Bitter')úselect name from %sboozer7   r   úVictoria Bitter©	r   r   r   r   Útable_prefixÚfetchallr2   Úlenr   )r   r    Úcur1Úcur2r   s        r   Útest_cursor_isolationz"test_dbapi20.test_cursor_isolationÔ   s  € Ø�Š‰Œ€#ðð �*Š*‰,Œ,€4Ø
�*Š*‰,Œ,€4Ø×Ò�DÑÔÐØ‡<‚<Ð@ØÔññ ô ð ð ‡<‚<Ð*¨TÔ->Ñ>Ñ?Ô?Ð?Ø�=Š=‰?Œ?€5Ø×Ò•C˜‘J”J˜qÑ!Ô!Ð!Ø×Ò•C˜˜aœ‘M”M !Ñ$Ô$Ð$Ø×Ò�E˜!”H˜Q”KÐ 1Ñ2Ô2Ð2à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –C9D% Ä%D;c                 ó`  — |                       ¦   «         }	 |                     ¦   «         }|                      |¦  «         |                      |j        d d¦  «         |                     d| j        z  ¦  «         |                      t          |j        ¦  «        dd¦  «         |                      t          |j        d         ¦  «        dd¦  «         |                      |j        d         d                              ¦   «         dd	¦  «         |                      |j        d         d         | j	        j
        d
|j        d         d         z  ¦  «         |                      |¦  «         |                      |j        d d¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nzccursor.description should be none after executing a statement that can return no rows (such as DDL)r`   r7   z-cursor.description describes too many columnsr   é   z1cursor.description[x] tuples must have 7 elementsÚnamez0cursor.description[x][0] must return column namez8cursor.description[x][1] must return column type. Got %rzVcursor.description not being set to None when executing no-result statements (eg. DDL))r   r   r   r2   Údescriptionr   rc   re   r	   r   ÚSTRINGr   r   r\   s      r   Útest_descriptionztest_dbapi20.test_descriptionç   s«  € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ø×Ò�CÑÔÐØ×Ò�C”O Dð6ñô ð ð ‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø×Ò•C˜œÑ(Ô(¨Ø3ñô ð ð ×Ò•C˜œ¨Ô*Ñ+Ô+¨AØ7ñô ð ð ×Ò�C”O AÔ& qÔ)×/Ò/Ñ1Ô1°&Ø6ñô ð ð ×Ò�C”O AÔ& qÔ)¨$¬+Ô*<Ø>Ø
„�qÔ˜!Ôññô ð ð ×Ò�CÑÔÐØ×Ò�C”O Dð%ñô ð ð
 ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –E+F ÆF-c                 ó:  — |                       ¦   «         }	 |                     ¦   «         }|                      |¦  «         |                      |j        dd¦  «         |                     d| j        z  ¦  «         |                      |j        dd¦  «         |                     d| j        z  ¦  «         |                      |j        d¦  «         |                     d| j        z  ¦  «         |                      |j        d	¦  «         |                     d
| j        z  ¦  «         |                      |j        dd¦  «         |                      |¦  «         |                      |j        dd¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)NéÿÿÿÿzAcursor.rowcount should be -1 after executing no-result statementsr_   r7   zccursor.rowcount should == number or rows inserted, or set to -1 after executing an insert statementz8insert into %sbooze select 'Victoria Bitter' WHERE FALSEr   z<insert into %sbooze select 'First' UNION ALL select 'second'r   r`   zbcursor.rowcount should == number of rows returned, or set to -1 after executing a select statementzJcursor.rowcount not being reset to -1 after executing no-result statements)	r   r   r   r2   Úrowcountr   rc   r   r   r\   s      r   Útest_rowcountztest_dbapi20.test_rowcount  s½  € Ø�Š‰Œ€#ð"Ø	�Š‰Œ€3Ø×Ò�CÑÔÐØ×Ò�C”L "ðñô ð ð ‡;‚;Ð?ØÔññ ô ð ð ×Ò�C”L !ð4ñô ð ð ‡;‚;ÐIØÔññ ô ð ð ×Ò�C”L !Ñ$Ô$Ð$Ø‡;‚;ÐMØÔññ ô ð ð ×Ò�C”L !Ñ$Ô$Ð$à‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø×Ò�C”L "ð3ñô ð ð ×Ò�CÑÔÐØ×Ò�C”L "ðñô ð ð
 ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –EF ÆFc                 óž  — |                       ¦   «         }	 |                     ¦   «         }| j        rït          |d¦  «        rß|                     | j        d¦  «        }|                      t          |¦  «        d¦  «         |                      |d         d¦  «         |                     ¦   «         }|                      t          |¦  «        dd¦  «         |                      t          |d         ¦  «        dd¦  «         |                      |d         d         dd	¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)
NÚcallproc)ÚFOOr7   r   ru   zcallproc produced no result setz$callproc produced invalid result setÚfooz!callproc produced invalid results)	r   r   Ú
lower_funcrY   rt   r2   re   rd   r   ©r   r    r!   Úrs       r   Útest_callprocztest_dbapi20.test_callproc/  s*  € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ø
„oð �' # jÑ1Ô1ð Ø�Š�T”_ XÑ.Ô.€AØ×Ò•S˜‘V”V˜AÑÔÐØ×Ò�Q�q”T˜%Ñ Ô Ð Ø�Š‰Œ€AØ×Ò•S˜‘V”V˜AÐ?Ñ@Ô@Ð@Ø×Ò•S˜˜1œ‘Y”Y˜qØ+ñô ð ð 	×Ò�Q�q”T˜!”W˜UØ(ñô ð ð ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –D
D6 Ä6Ec                 ó”  — |                       ¦   «         }	 |                     ¦   «         }|                     ¦   «          n# |                     ¦   «          w xY w|                      | j        j        | j        |¦  «         |                      | j        j        |j        ¦  «         |                      | j        j        |j        ¦  «         d S r   )r   r   r   ÚassertRaisesr   r   r   r   r\   s      r   Ú
test_closeztest_dbapi20.test_closeB  s¨   € Ø�Š‰Œ€#ðØ	�Š‰Œ€3à‡9‚9�;„;€;€;ø€3‡9‚9�;„;€;€;øøøð ×Ò�D”KÔ% dÔ&6°sÑ;Ô;Ð;ð ×Ò�D”KÔ% c¤jÑ1Ô1Ð1ð ×Ò�D”KÔ% c¤iÑ0Ô0Ð0Ð0Ð0s	   –? ¿Ac                 ó  — |                       ¦   «         }	 |                     ¦   «         }|                     ¦   «          |                      | j        j        | j        |¦  «         |                      | j        j        |j        dg ¦  «         |                      | j        j        |j        dddg¦  «         |                      | j        j        |j        ¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nrv   Úgenerate_seriesr7   é
   )	r   r   r   r|   r   r   r   Úexecutemanyrt   r\   s      r   Útest_cursor_closeztest_dbapi20.test_cursor_closeT  sÛ   € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ø‡9‚9�;„;€;ð ×Ò�T”[Ô& tÔ'7¸Ñ<Ô<Ð<ð ×Ò�T”[Ô& s¤°u¸bÑAÔAÐAà×Ò�T”[Ô& s¤|Ð4EÈÈ2ÀwÑOÔOÐOð ×Ò�T”[Ô& s¤yÑ1Ô1Ð1à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –CC/ Ã/Dc                 óÜ   — |                       ¦   «         }	 |                     ¦   «         }|                      |¦  «         |                     ¦   «          d S # |                     ¦   «          w xY wr   )r   r   Ú_paraminsertr   r\   s      r   Útest_executeztest_dbapi20.test_executeg  sX   € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ø×Ò�SÑÔÐà‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –)A ÁA+c                 ó‚   — d| j         _        	 |                      ¦   «          d| j         _        d S # d| j         _        w xY w©NrA   rB   )r   rC   r…   rN   s    r   Útest_format_executez test_dbapi20.test_format_executeo  sI   € Ø#€$„+Ôð'Ø×ÒÑÔÐà&€4„;ÔÐÐø˜J€4„;ÔÐ&Ð&Ð&Ð&ó   Ž0 °>c                 ó`  — |                       |¦  «         |                     d| j        z  ¦  «         |                      |j        dv ¦  «         | j        j        dk    r|                     d| j        z  d¦  «         nÕ| j        j        dk    r|                     d| j        z  d¦  «         n¦| j        j        dk    r!|                     d	| j        z  d
di¦  «         nu| j        j        dk    r|                     d| j        z  d¦  «         nF| j        j        dk    r!|                     d| j        z  d
di¦  «         n|                      d¦  «         |                      |j        dv ¦  «         |                     d| j        z  ¦  «         |                     ¦   «         }|  	                    t          |¦  «        dd¦  «         |d         d         |d         d         g}|                     ¦   «          |  	                    |d         dd¦  «         |  	                    |d         dd¦  «         d S )Nr_   ©rp   r7   r>   úinsert into %sbooze values (?)©úCooper'sr?   úinsert into %sbooze values (:1)r@   ú"insert into %sbooze values (:beer)ÚbeerrŽ   rA   ú insert into %sbooze values (%%s)rB   ú&insert into %sbooze values (%%(beer)s)zInvalid paramstyler`   r   z%cursor.fetchall returned too few rowsr   r7   zFcursor.fetchall retrieved incorrect data, or data inserted incorrectlyra   )r   r   rc   r:   rq   r   rC   r4   rd   r2   re   Úsort)r   r!   ÚresÚbeerss       r   r„   ztest_dbapi20._paraminsertv  sw  € Ø×Ò�3ÑÔÐØ‡+‚+Ð>ØÔññ ô ð ð ‡/‚/�#”, &Ð(Ñ)Ô)Ð)à	„[Ô˜wÒ&Ð&Ø‡;‚;Ø$ tÔ'8Ñ8Øñô ð ð ð „{Ô Ò*Ð*Ø‡;‚;Ø%¨Ô(9Ñ9Øñô ð ð ð „{Ô Ò(Ð(Ø‡;‚;Ø(¨4Ô+<Ñ<ØˆJÐñô ð ð ð „{Ô Ò)Ð)Ø‡;‚;Ø&¨Ô):Ñ:Øñô ð ð ð „{Ô Ò+Ð+Ø‡;‚;Ø,¨tÔ/@Ñ@ØˆJÐñô ð ð ð
 ‡9‚9Ð!Ñ"Ô"Ð"Ø‡/‚/�#”, &Ð(Ñ)Ô)Ð)à‡+‚+Ð(¨4Ô+<Ñ<Ñ=Ô=Ð=Ø�Š‰Œ€#Ø×Ò•3�s‘8”8˜AÐEÑFÔFÐFØˆqŒ6�!Œ9�S˜”V˜A”YÐ
€%Ø‡*‚*�,„,€,Ø×Ò�5˜”8˜Jðñô ð ð ×Ò�5˜”8Ð-ðñô ð ð ð r   c                 ó¼  — |                       ¦   «         }	 |                     ¦   «         }|                      |¦  «         ddg}ddiddig}| j        j        dk    r|                     d| j        z  |¦  «         nÑ| j        j        dk    r|                     d	| j        z  |¦  «         n¢| j        j        d
k    r|                     d| j        z  |¦  «         ns| j        j        dk    r|                     d| j        z  |¦  «         nD| j        j        dk    r|                     d| j        z  |¦  «         n|                      d¦  «         |                      |j	        dv d|j	        z  ¦  «         | 
                    d| j        z  ¦  «         |                     ¦   «         }|                      t          |¦  «        dd¦  «         |d         d         |d         d         g}|                     ¦   «          |                      |d         dd¦  «         |                      |d         dd¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nr�   )úBoag'sr‘   rŽ   r˜   r>   rŒ   r?   r�   r@   r�   rA   r’   rB   r“   zUnknown paramstyle)rp   r   zIinsert using cursor.executemany set cursor.rowcount to incorrect value %rr`   r   z2cursor.fetchall retrieved incorrect number of rowsr   r7   zincorrect data retrieved)r   r   r   r   rC   r�   rc   r4   r:   rq   r   rd   r2   re   r”   r   )r   r    r!   ÚlargsÚmargsr•   r–   s          r   Útest_executemanyztest_dbapi20.test_executemany¨  s•  € Ø�Š‰Œ€#ð0Ø	�Š‰Œ€3Ø×Ò�CÑÔÐØ˜[Ð*€5Ø�jÐ! F¨HÐ#5Ð7€5Ø
„kÔ Ò'Ð'Ø‡O‚OØ%¨Ô(9Ñ9Ø
ñô ð ð ð 	ŒÔ )Ò+Ð+Ø‡O‚OØ&¨Ô):Ñ:Ø
ñô ð ð ð 	ŒÔ 'Ò)Ð)Ø‡O‚OØ)¨DÔ,=Ñ=Ø
ñô ð ð ð 	ŒÔ (Ò*Ð*Ø‡O‚OØ'¨$Ô*;Ñ;Ø
ñô ð ð ð 	ŒÔ *Ò,Ð,Ø‡O‚OØ-Ø
Ôñð ñ	ô ð ð ð 	‡I‚IÐ"Ñ#Ô#Ð#Ø‡?‚?�3”< 6Ð)ðØœ<ñ(ñô ð ð ‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø	�Š‰Œ€3Ø×Ò•C˜‘H”H˜QØ8ñô ð ð �ŒF�1ŒI�c˜!”f˜Q”iÐ €5Ø‡:‚:�<„<€<Ø×Ò�E˜!”H˜XÐ&@ÑAÔAÐAØ×Ò�E˜!”H˜ZÐ(BÑCÔCÐCà‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –HI ÉIc                 ó‚   — d| j         _        	 |                      ¦   «          d| j         _        d S # d| j         _        w xY wr‡   )r   rC   r›   rN   s    r   Útest_format_executemanyz$test_dbapi20.test_format_executemanyÜ  sI   € Ø#€$„+Ôð'Ø×ÒÑÔÐà&€4„;ÔÐÐø˜J€4„;ÔÐ&Ð&Ð&Ð&r‰   c                 ó&  — |                       ¦   «         }	 |                     ¦   «         }|                      | j        j        |j        ¦  «         |                      |¦  «         |                      | j        j        |j        ¦  «         |                     d| j        z  ¦  «         |  	                    |                     ¦   «         d d¦  «         |  
                    |j        dv ¦  «         |                     d| j        z  ¦  «         |                      | j        j        |j        ¦  «         |                     d| j        z  ¦  «         |                     ¦   «         }|  	                    t          |¦  «        dd¦  «         |  	                    |d         dd	¦  «         |  	                    |                     ¦   «         d d
¦  «         |  
                    |j        dv ¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nr`   z?cursor.fetchone should return None if a query retrieves no rows©rp   r   r_   r7   z2cursor.fetchone should have retrieved a single rowr   ra   z(cursor.fetchone retrieved incorrect dataz<cursor.fetchone should return None if no more rows availabler‹   )r   r   r|   r   r   Úfetchoner   r   rc   r2   r:   rq   re   r   rx   s       r   Útest_fetchoneztest_dbapi20.test_fetchoneã  sñ  € Ø�Š‰Œ€#ð'Ø	�Š‰Œ€3ð ×Ò�T”[Ô& s¤|Ñ4Ô4Ð4ð ×Ò�CÑÔÐØ×Ò�T”[Ô& s¤|Ñ4Ô4Ð4à‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø×Ò�C—L’L‘N”N 4ðñô ð ð ‡?‚?�3”< 6Ð)Ñ*Ô*Ð*ð ‡;‚;Ð?ØÔññ ô ð ð ×Ò�T”[Ô& s¤|Ñ4Ô4Ð4à‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø
‡|‚|�~„~€1Ø×Ò•C˜‘F”F˜1Ø8ñô ð ð ×Ò�A�a”DÐ*Ø.ñô ð ð ×Ò�C—L’L‘N”N 4ØBñô ð ð ‡?‚?�3”< 6Ð)Ñ*Ô*Ð*à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –GG: Ç:H)zCarlton ColdzCarlton DraftzMountain GoatÚRedbackra   ÚXXXXc                 ó.   ‡ — ˆ fd„‰ j         D ¦   «         }|S )zH
		Return a list of sql commands to setup the DB for the fetch tests.
		c                 ó,   •— g | ]}d ‰j         ›d|›d�‘ŒS )zinsert into zbooze values ('z'))rc   )Ú.0Úsr   s     €r   ú
<listcomp>z*test_dbapi20._populate.<locals>.<listcomp>  s=   ø€ ð ð ð à	ˆð +/Ô*;Ð*;Ð*;¸A¸A¸AÐ>ðð ð r   )Úsamples)r   Úpopulates   ` r   Ú	_populateztest_dbapi20._populate  s4   ø€ ðð ð ð àŒ\ðñ ô €(ð 
€/r   c                 ó0	  — |                       ¦   «         }	 |                     ¦   «         }|                      | j        j        |j        d¦  «         |                      |¦  «         |                      ¦   «         D ]}|                     |¦  «         Œ|                     d| j	        z  ¦  «         |                     ¦   «         }|  
                    t          |¦  «        dd¦  «         d|_        |                     d¦  «        }|  
                    t          |¦  «        dd¦  «         |                     d¦  «        }|  
                    t          |¦  «        dd¦  «         |                     d¦  «        }|  
                    t          |¦  «        d	d
¦  «         |                      |j        dv ¦  «         d|_        |                     d| j	        z  ¦  «         |                     ¦   «         }|  
                    t          |¦  «        dd¦  «         |                     ¦   «         }|  
                    t          |¦  «        d¦  «         |                     ¦   «         }|  
                    t          |¦  «        d	¦  «         |                      |j        dv ¦  «         d|_        |                     d| j	        z  ¦  «         |                     ¦   «         }|                      |j        dv ¦  «         |  
                    t          |¦  «        d¦  «         |  
                    t          |¦  «        d¦  «         d„ |D ¦   «         }|                     ¦   «          t!          d	d¦  «        D ]*}|  
                    ||         | j        |         d¦  «         Œ+|                     ¦   «         }|  
                    t          |¦  «        d	d¦  «         |                      |j        dv ¦  «         |                      |¦  «         |                     d| j	        z  ¦  «         |                     ¦   «         }|  
                    t          |¦  «        d	d¦  «         |                      |j        dv ¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Né   r`   r7   zQcursor.fetchmany retrieved incorrect number of rows, default of arraysize is one.r€   r8   z3cursor.fetchmany retrieved incorrect number of rowsr   r   zLcursor.fetchmany should return an empty sequence after results are exhausted©rp   é   z0cursor.arraysize not being honoured by fetchmanyr¯   c                 ó   — g | ]
}|d          ‘ŒS ©r   © ©r¦   ry   s     r   r¨   z/test_dbapi20.test_fetchmany.<locals>.<listcomp>W  ó   € Ð
Ð
Ð
�Aˆ1ˆQŒ4Ð
Ð
Ð
r   z,incorrect data retrieved by cursor.fetchmanyzfcursor.fetchmany should return an empty sequence if called after the whole result set has been fetchedúselect name from %sbarflyszKcursor.fetchmany should return an empty sequence if query retrieved no rowsrŸ   )r   r   r|   r   r   Ú	fetchmanyr   r«   r   rc   r2   re   Ú	arraysizer:   rq   r”   Úranger©   r   r   )r   r    r!   Úsqlry   ÚrowsÚis          r   Útest_fetchmanyztest_dbapi20.test_fetchmany!  s>  € Ø�Š‰Œ€#ðNØ	�Š‰Œ€3ð ×Ò�T”[Ô& s¤}°QÑ7Ô7Ð7à×Ò�CÑÔÐØ�nŠnÑÔð ð €sØ‡K‚K�ÑÔÐÐà‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø
‡}‚}�„€1Ø×Ò•C˜‘F”F˜1ð#ñô ð ð €3„=Ø
‡}‚}�QÑÔ€1Ø×Ò•C˜‘F”F˜1Ø9ñô ð ð ‡}‚}�QÑÔ€1Ø×Ò•C˜‘F”F˜1Ø9ñô ð ð ‡}‚}�QÑÔ€1Ø×Ò•C˜‘F”F˜1ðñô ð ð ‡?‚?�3”< 6Ð)Ñ*Ô*Ð*ð €3„=Ø‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø
‡}‚}�„€1Ø×Ò•C˜‘F”F˜1Ø6ñô ð ð ‡}‚}�„€1Ø×Ò•C˜‘F”F˜1ÑÔÐØ
‡}‚}�„€1Ø×Ò•C˜‘F”F˜1ÑÔÐØ‡?‚?�3”< 6Ð)Ñ*Ô*Ð*à€3„=Ø‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø
�-Š-‰/Œ/€4Ø‡?‚?�3”< 6Ð)Ñ*Ô*Ð*Ø×Ò•C˜‘I”I˜aÑ Ô Ð Ø×Ò•C˜‘I”I˜aÑ Ô Ð Ø
Ð
˜Ð
Ñ
Ô
€4Ø‡9‚9�;„;€;õ �!�A‰JŒJð ð €qØ×Ò�T˜!”W˜Tœ\¨!œ_Ø3ñô ð ð ð �-Š-‰/Œ/€4Ø×Ò•C˜‘I”I˜að9ñô ð ð ‡?‚?�3”< 6Ð)Ñ*Ô*Ð*à×Ò�CÑÔÐØ‡;‚;Ð+¨dÔ.?Ñ?Ñ@Ô@Ð@Ø
‡}‚}�„€1Ø×Ò•C˜‘F”F˜1ðñô ð ð ‡?‚?�3”< 6Ð)Ñ*Ô*Ð*ð ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –QQ? Ñ?Rc                 ó¬  — |                       ¦   «         }	 |                     ¦   «         }|                      | j        j        |j        ¦  «         |                      |¦  «         |                      ¦   «         D ]}|                     |¦  «         Œ|                      | j        j        |j        ¦  «         |                     d| j	        z  ¦  «         |                     ¦   «         }|  
                    |j        dt          | j        ¦  «        fv ¦  «         |                      t          |¦  «        t          | j        ¦  «        d¦  «         d„ |D ¦   «         }|                     ¦   «          t!          dt          | j        ¦  «        ¦  «        D ]*}|                      ||         | j        |         d¦  «         Œ+|                     ¦   «         }|                      t          |¦  «        dd¦  «         |  
                    |j        dt          | j        ¦  «        fv ¦  «         |                      |¦  «         |                     d| j	        z  ¦  «         |                     ¦   «         }|  
                    |j        d	v ¦  «         |                      t          |¦  «        dd
¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nr`   rp   z)cursor.fetchall did not retrieve all rowsc                 ó   — g | ]
}|d          ‘ŒS r±   r²   r³   s     r   r¨   z.test_dbapi20.test_fetchall.<locals>.<listcomp>Š  r´   r   r   z(cursor.fetchall retrieved incorrect rowszacursor.fetchall should return an empty list if called after the whole result set has been fetchedrµ   rŸ   zMcursor.fetchall should return an empty list if a select query returns no rows)r   r   r|   r   r   rd   r   r«   r   rc   r:   rq   re   r©   r2   r”   r¸   r   r   )r   r    r!   r¹   rº   r»   s         r   Útest_fetchallztest_dbapi20.test_fetchalls  s•  € Ø�Š‰Œ€#ð,Ø	�Š‰Œ€3ð ×Ò�T”[Ô&¨¬Ñ5Ô5Ð5à×Ò�CÑÔÐØ�nŠnÑÔð ð €sØ‡K‚K�ÑÔÐÐð ×Ò�T”[Ô& s¤|Ñ4Ô4Ð4à‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø
�,Š,‰.Œ.€4Ø‡?‚?�3”< B¥s¨4¬<Ñ'8Ô'8Ð#9Ð9Ñ:Ô:Ð:Ø×Ò•C˜‘I”I�c $¤,Ñ/Ô/Ø/ñô ð ð Ð
˜Ð
Ñ
Ô
€4Ø‡9‚9�;„;€;Ý�!•C˜œÑ%Ô%Ñ&Ô&ð ð €qØ×Ò�T˜!”W˜Tœ\¨!œ_Ø.ñô ð ð ð �,Š,‰.Œ.€4Ø×ÒÝˆ�I„Iˆað2ñô ð ð
 ‡?‚?�3”< B¥s¨4¬<Ñ'8Ô'8Ð#9Ð9Ñ:Ô:Ð:à×Ò�CÑÔÐØ‡;‚;Ð+¨dÔ.?Ñ?Ñ@Ô@Ð@Ø
�,Š,‰.Œ.€4Ø‡?‚?�3”< 6Ð)Ñ*Ô*Ð*Ø×Ò•C˜‘I”I˜að%ñô ð ð
 ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –JJ= Ê=Kc                 ó   — |                       ¦   «         }	 |                     ¦   «         }|                      |¦  «         |                      ¦   «         D ]}|                     |¦  «         Œ|                     d| j        z  ¦  «         |                     ¦   «         }|                     d¦  «        }|                     ¦   «         }|                     ¦   «         }|  	                    |j
        dv ¦  «         |                      t          |¦  «        dd¦  «         |                      t          |¦  «        dd¦  «         |d         g}|                     |d         d         |d         d         g¦  «         |                     |d         ¦  «         |                     |d         d         |d         d         g¦  «         |                     ¦   «          t!          dt          | j        ¦  «        ¦  «        D ]*}	|                      ||	         | j        |	         d¦  «         Œ+	 |                     ¦   «          d S # |                     ¦   «          w xY w)	Nr`   r   r®   z+fetchmany returned incorrect number of rowsz*fetchall returned incorrect number of rowsr   r7   z$incorrect data retrieved or inserted)r   r   r   r«   r   rc   r    r¶   rd   r:   rq   r2   re   ÚextendÚappendr”   r¸   r©   r   )
r   r    r!   r¹   Úrows1Úrows23Úrows4Úrows56rº   r»   s
             r   Útest_mixedfetchztest_dbapi20.test_mixedfetch£  s  € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ø×Ò�CÑÔÐØ�nŠnÑÔð ð €sØ‡K‚K�ÑÔÐÐà‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø�LŠL‰NŒN€5Ø�MŠM˜!ÑÔ€6Ø�LŠL‰NŒN€5Ø�LŠL‰NŒN€6Ø‡?‚?�3”< 6Ð)Ñ*Ô*Ð*Ø×Ò•C˜‘K”K Ø1ñô ð ð ×Ò•C˜‘K”K Ø0ñô ð ð �Œ8ˆ*€4Ø‡;‚;��q”	˜!”˜V AœY qœ\Ð*Ñ+Ô+Ð+Ø‡;‚;ˆu�QŒxÑÔÐØ‡;‚;��q”	˜!”˜V AœY qœ\Ð*Ñ+Ô+Ð+Ø‡9‚9�;„;€;Ý�!•C˜œÑ%Ô%Ñ&Ô&ð ð €qØ×Ò�T˜!”W˜Tœ\¨!œ_Ø+ñô ð ð ðð
 ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –H
H7 È7Ic                 óz   — |                      d| j        z   ¦  «         |                      d| j        z   ¦  «         dS )z‹
		Should create a procedure called deleteme
		that returns two result sets, first the 
		number of rows in booze then "name from booze"
		zselect name from zselect count(*) from N)r   Ú
booze_name©r   r!   s     r   Úhelp_nextset_setUpztest_dbapi20.help_nextset_setUpÄ  s>   € ð ‡+‚+Ð! D¤OÑ3Ñ4Ô4Ð4Ø‡+‚+Ð%¨¬Ñ7Ñ8Ô8Ð8Ð8Ð8r   c                 ó   — dS )z*If cleaning up is needed after nextSetTestNr²   rÊ   s     r   Úhelp_nextset_tearDownz"test_dbapi20.help_nextset_tearDownÍ  ó   € à€$r   c                 óŒ  — |                       ¦   «         }	 |                     ¦   «         }t          |d¦  «        s	 |                     ¦   «          d S 	 |                      |¦  «         |                      ¦   «         }|                      ¦   «         D ]}|                     |¦  «         Œ|                      |¦  «         |                     ¦   «         }|d         t          | j
        ¦  «        k    sJ ‚|                     ¦   «         sJ ‚|                     ¦   «         }t          |¦  «        t          | j
        ¦  «        k    sJ ‚|                     ¦   «         }|d k    s
J d¦   «         ‚	 |                      |¦  «         n# |                      |¦  «         w xY w	 |                     ¦   «          d S # |                     ¦   «          w xY w)NÚnextsetr   z'No more return sets, should return None)r   r   rY   r   r   r«   r   rË   r    re   r©   rÐ   rd   rÍ   )r   r    r!   r¹   ÚnumberofrowsÚnamesr§   s          r   Útest_nextsetztest_dbapi20.test_nextsetÑ  s›  € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ý
�#�iÑ
 Ô
 ð Ø
ð( ‡9‚9�;„;€;€;€;ð%$Ø×Ò�SÑÔÐØ�ŠÑÔ€CØ�~Š~ÑÔð ð ˆØ‡[‚[�ÑÔÐÐà×Ò˜CÑ Ô Ð à—’‘”€LØ˜Œ?�S ¤Ñ.Ô.Ò.Ð.Ð.Ð.Ø�;Š;‰=Œ=ÐÐÐØ
�,Š,‰.Œ.€EÝˆu‰:Œ:�˜Tœ\Ñ*Ô*Ò*Ð*Ð*Ð*Ø	‡k‚k�m„m€AØ�Š9ˆ9ˆ9Ð>‰9Œ9ˆ9ˆ9à×Ò˜sÑ#Ô#Ð#Ð#ø€D×Ò˜sÑ#Ô#Ð#Ð#øøøÐ#à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs$   –$F- ÁDE< Å&F- Å<FÆF- Æ-Gc                 óú   — |                       ¦   «         }	 |                     ¦   «         }|                      t          |d¦  «        d¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nr·   z cursor.arraysize must be defined)r   r   r:   rY   r   r\   s      r   Útest_arraysizeztest_dbapi20.test_arraysizeì  sk   € à�Š‰Œ€#ðØ	�Š‰Œ€3Ø‡?‚?•7˜3˜{Ñ+Ô+Ø&ñô ð ð ‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –8A$ Á$A:c                 ó  — |                       ¦   «         }	 |                     ¦   «         }|                     d¦  «         |                      |¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)N)é   )r   r   Úsetinputsizesr„   r   r\   s      r   Útest_setinputsizesztest_dbapi20.test_setinputsizes÷  sl   € Ø�Š‰Œ€#ðØ	�Š‰Œ€3Ø×Ò�eÑÔÐØ×Ò�SÑÔÐà‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –>A* Á*B c                 ó2  — |                       ¦   «         }	 |                     ¦   «         }|                     d¦  «         |                     dd¦  «         |                      |¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Niè  iÐ  r   )r   r   Úsetoutputsizer„   r   r\   s      r   Útest_setoutputsize_basicz%test_dbapi20.test_setoutputsize_basic   s‚   € à�Š‰Œ€#ðØ	�Š‰Œ€3Ø×Ò�TÑÔÐØ×Ò�T˜!ÑÔÐØ×Ò�SÑÔÐà‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –AB  Â Bc                 ó   — d S r   r²   rN   s    r   Útest_setoutputsizeztest_dbapi20.test_setoutputsize  rÎ   r   c                 óX  — |                       ¦   «         }|                       ¦   «         }	 d|_        |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                     ¦   «         }|                     d¦  «         |                     ¦   «                              d¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)NTz(create table some_committed_table(i int)zdrop table some_committed_table)	r   Ú
autocommitr|   rG   r   rX   r   r   r   )r   r    Úcon2Úcs       r   Útest_autocommitztest_dbapi20.test_autocommit  sü   € Ø�Š‰Œ€#Ø	�Š‰Œ€$ðØ€3„>à×ÒØÔØ„Jñô ð ð ×ÒØÔØ„Lñô ð ð ‡z‚z�|„|€1Ø‡9‚9Ð7Ñ8Ô8Ð8à‡;‚;�=„=×ÒÐ:Ñ;Ô;Ð;Ø‡;‚;�=„=€=à‡9‚9�;„;€;Ø‡:‚:�<„<€<€<€<øð ‡9‚9�;„;€;Ø‡:‚:�<„<€<€<øøøs   ªB+C? Ã?*D)c                 óV  — |                       ¦   «         }	 |                     ¦   «         }|                      |¦  «         |                     d| j        z  ¦  «         |                     d| j        z  ¦  «         |                     ¦   «         }|                      t          |¦  «        d¦  «         |                      t          |d         ¦  «        d¦  «         |                      |d         d         d d¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nz!insert into %sbooze values (NULL)r`   r7   r   zNULL value not returned as Nonerb   rx   s       r   Ú	test_Noneztest_dbapi20.test_None&  sø   € Ø�Š‰Œ€#ð
Ø	�Š‰Œ€3Ø×Ò�CÑÔÐØ‡;‚;Ð2°TÔ5FÑFÑGÔGÐGØ‡;‚;Ð)¨DÔ,=Ñ=Ñ>Ô>Ð>Ø
‡|‚|�~„~€1Ø×Ò•C˜‘F”F˜1ÑÔÐØ×Ò•C˜˜!œ‘I”I˜aÑ Ô Ð Ø×Ò�A�a”D˜”G˜DÐ!BÑCÔCÐCà‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –C&D ÄD(c                 óö   — | j                              ddd¦  «        }| j                              t          j        d¦  «        ¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         d S )NéÒ  é   r×   )	rç   rè   r×   r   r   r   r   r   r   )r   ÚDateÚDateFromTicksÚtimeÚmktimer2   Ústr)r   Úd1Úd2s      r   Ú	test_Dateztest_dbapi20.test_Date4  sc   € Ø„{×Ò˜˜R Ñ#Ô#€"Ø„{× Ò ¥¤Ð-EÑ!FÔ!FÑGÔG€"à×Ò•3�r‘7”7�3˜r™7œ7Ñ#Ô#Ð#Ð#Ð#r   c                 óö   — | j                              ddd¦  «        }| j                              t          j        d¦  «        ¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         d S )Né   é-   é   )	iÑ  r7   r7   rò   ró   rô   r   r   r   )r   ÚTimeÚTimeFromTicksrë   rì   r2   rí   ©r   Út1Út2s      r   Ú	test_Timeztest_dbapi20.test_Time:  sc   € Ø„{×Ò˜˜2˜bÑ!Ô!€"Ø„{× Ò ¥¤Ð-FÑ!GÔ!GÑHÔH€"à×Ò•3�r‘7”7�3˜r™7œ7Ñ#Ô#Ð#Ð#Ð#r   c                 óœ   — | j                              dddddd¦  «        }| j                              t          j        d¦  «        ¦  «        }d S )Nrç   rè   r×   rò   ró   rô   )	rç   rè   r×   rò   ró   rô   r   r   r   )r   Ú	TimestampÚTimestampFromTicksrë   rì   r÷   s      r   Útest_Timestampztest_dbapi20.test_Timestamp@  sJ   € Ø„{×Ò˜T " R¨¨2¨bÑ1Ô1€"Ø„{×%Ò%Ý„;Ð*Ñ+Ô+ñô €"€"€"r   c                 ón   — | j                              d¦  «        }| j                              d¦  «        }d S )Ns	   Somethingr   )r   ÚBinary)r   Úbs     r   Útest_Binaryztest_dbapi20.test_BinaryH  s0   € Ø
„k×Ò˜Ñ&Ô&€!Ø
„k×Ò˜ÑÔ€!€!€!r   c                 óX   — |                       t          | j        d¦  «        d¦  «         d S )Nrm   zmodule.STRING must be defined©r:   rY   r   rN   s    r   Útest_STRINGztest_dbapi20.test_STRINGL  s3   € Ø‡/‚/•'˜$œ+ hÑ/Ô/Ø"ñô ð ð ð r   c                 óX   — |                       t          | j        d¦  «        d¦  «         d S )NÚBINARYzmodule.BINARY must be defined.r  rN   s    r   Útest_BINARYztest_dbapi20.test_BINARYQ  ó3   € Ø‡/‚/•'˜$œ+ hÑ/Ô/Ø#ñô ð ð ð r   c                 óX   — |                       t          | j        d¦  «        d¦  «         d S )NÚNUMBERzmodule.NUMBER must be defined.r  rN   s    r   Útest_NUMBERztest_dbapi20.test_NUMBERV  r	  r   c                 óX   — |                       t          | j        d¦  «        d¦  «         d S )NÚDATETIMEz module.DATETIME must be defined.r  rN   s    r   Útest_DATETIMEztest_dbapi20.test_DATETIME[  s3   € Ø‡/‚/•'˜$œ+ jÑ1Ô1Ø%ñô ð ð ð r   c                 óX   — |                       t          | j        d¦  «        d¦  «         d S )NÚROWIDzmodule.ROWID must be defined.r  rN   s    r   Ú
test_ROWIDztest_dbapi20.test_ROWID`  s3   € Ø‡/‚/•'˜$œ+ gÑ.Ô.Ø"ñô ð ð ð r   c                 óÆ  — |                       ¦   «         }	 |                     ¦   «         }|                     dd¦  «         |                      d|                     ¦   «         d         ¦  «         |                     dddi¦  «         |                      d|                     ¦   «         d         ¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)NzSELECT 100 %% %s)éc   r7   r   zSELECT 100 %% %(foo)srv   r  )r   r   r   r2   r    r   )r   r    râ   s      r   Útest_placeholder_escapez$test_dbapi20.test_placeholder_escapee  s¶   € Ø�Š‰Œ€#ðØ
‡z‚z�|„|€1Ø‡9‚9Ð Ñ'Ô'Ð'Ø×Ò�A�q—z’z‘|”| A”Ñ'Ô'Ð'Ø‡9‚9Ð$ u¨b kÑ2Ô2Ð2Ø×Ò�A�q—z’z‘|”| A”Ñ'Ô'Ð'à‡9‚9�;„;€;€;€;ø€3‡9‚9�;„;€;€;øøøs   –BC
 Ã
C )@Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpostgresql.driver.dbapi20r   Údbapi20rc   rÉ   r   r   r   r   Ú	lowerfuncr   r   r#   r   r/   r5   r;   rD   rO   rS   rU   rZ   r]   rh   rn   rr   rw   rz   r}   r‚   r…   rˆ   r„   r›   r�   r¡   r©   r«   r¼   r¿   rÇ   rË   rÍ   rÓ   rÕ   rÙ   rÜ   rÞ   rã   rå   rð   rú   rþ   r  r  r  r  r  r  r  r²   r   r   r   r   5   sm  € € € € € ðð ð. ,Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø€à˜WÑ$€Ø1°JÑ>€Ø8¸<ÑG€Ø	 Ñ	,€Ø	 ,Ñ	.€à€ðð ð ðð ð ðð ð ðð ð ðð ð ð/ð /ð /ð3ð 3ð 3ð	1ð 	1ð 	1ð	Oð 	Oð 	Oðð ð ð,ð ð ðð ð ðð ð ðð ð ð&ð ð ðB$ð $ð $ðL €ðð ð ð&1ð 1ð 1ð$ð ð ð&ð ð ð'ð 'ð 'ð0ð 0ð 0ðd2ð 2ð 2ðh'ð 'ð 'ð)ð )ð )ðVð ð €ðð ð ðPð Pð Pðd.ð .ð .ð`ð ð ðB9ð 9ð 9ðð ð ðð ð ð6	ð 	ð 	ðð ð ð	ð 	ð 	ðð ð ðð ð ð.ð ð ð$ð $ð $ð$ð $ð $ðð ð ðð ð ðð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
	ð 	ð 	ð 	ð 	r   r   Ú__main__)Úunittestrë   Útemporalr   ÚTestCaser   r  Úmainr²   r   r   ú<module>r"     sˆ   ðð €€€Ø €€€Ø Ð Ð Ð Ð Ð ð^yð yð yð yð y�8Ô$ñ yô yð yðv ˆzÒÐØ€„�„€€€ð Ðr   