§
    öÛg‘3  ã                   ó2  — d dl Z d dlZd dlZd dlZd dlZd dlZddlmZ ddlm	Z	 ddlm
Z ddlmZ ddlmZ ddlmZ dd	lmZ d
„ Ze j        dv Z e¦   «         oe Ze Z G d„ dej        ¦  «        Z G d„ de¦  «        Zedk    r ej        ¦   «          dS dS )é    Né   )Úfind_available_port)Úinstallation)Úcluster)Ú
exceptions)Údbapi20)Údriver)Úopenc                  ó<  — d} t           j        r�	 t          j         t           j        t           j        ¦  «         d} n`# t           j        $ rN}t
          j        g}t          t
          dd ¦  «        }|�|                     |¦  «         |j        |vr‚ Y d }~nd }~ww xY w| S )NFTÚWSAEAFNOSUPPORT)	ÚsocketÚhas_ipv6ÚAF_INET6ÚSOCK_STREAMÚerrorÚerrnoÚEAFNOSUPPORTÚgetattrÚappend)ÚresultÚeÚerrsr   s       úR/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_connect.pyÚcheck_for_ipv6r      s²   € Ø
€Ý
„Oð 

ð	
Ý	„=•”¥&Ô"4Ñ5Ô5Ð5Ø€6€6øÝ	Œð 
ð 
ð 
ÝÔÐ
€4Ý�UÐ$5°tÑ<Ô<€?ØÐ!Ø‡K‚K�Ñ Ô Ð Ø„g�TÐÐØ	ð ÐÐÐÐøøøøð
øøøð 	€s   �+< ¼BÁABÂB)Úwin32Úwin64c                   ó>   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zˆ fd„Zˆ xZ	S )ÚTestCaseWithClusterz(
	postgresql.driver *interface* tests.
	c                 ó@  •—  t          ¦   «         j        |i |¤Ž t          j        ¦   «         | _        dt	          t          j        ¦   «         ¦  «        z   t          | dd¦  «        z   | _        | j        €Rt          j
                             d¦  «         t          j
                             d¦  «         t          j        d¦  «         t          j        | j        | j        ¦  «        | _        | j                             ¦   «         r| j                             ¦   «          d S d S )NÚpy_unittest_pg_cluster_Úcluster_path_suffixÚ z'ERROR: cannot find 'default' pg_config
zJHINT: set the PGINSTALLATION environment variable to the `pg_config` path
é   )ÚsuperÚ__init__r   ÚdefaultÚstrÚosÚgetpidr   Úcluster_pathÚsysÚstderrÚwriteÚexitÚ
pg_clusterÚClusterr   ÚinitializedÚdrop©ÚselfÚargsÚkwÚ	__class__s      €r   r%   zTestCaseWithCluster.__init__2   s  ø€ Ø…%�'„'Ô�DÐ˜BÐÐÐÝ"Ô*Ñ,Ô,€$ÔàÝ�Œ‰ŒÑÔñÝ Ð&;¸RÑ@Ô@ñAð Ôð 
ÔÐÝ„:×ÒÐ>Ñ?Ô?Ð?Ý„:×ÒØQñô ð õ „8ˆA�;„;€;åÔ#ØÔØÔñô €$„,ð 
„\×ÒÑÔð Ø„<×ÒÑÔÐÐÐðð ó    c                 óÖ  — t          ¦   «         | _        | j        €-t          j        d| j        ¬¦  «                             ¦   «          d}t          r|dz  }| j        j                             t          t          | j        ¦  «        dd|dd| j        j        ¬	¦  «        ¦  «         | j        j        j        d
k    r/| j        j                             t          d¬¦  «        ¦  «         d S d S )Nz7failed to find a port for the test cluster on localhost)Úcreatorú	127.0.0.1z,::1Ú6Ú24r,   ÚFATAL)ÚportÚmax_connectionsÚshared_buffersÚlisten_addressesÚlog_destinationÚlog_min_messagesÚunix_socket_directory)é   r#   Ú3)Úmax_prepared_transactions)r   Úcluster_portÚpg_excÚClusterErrorr   Úraise_exceptionr   ÚsettingsÚupdateÚdictr'   Údata_directoryr   Úversion_info)r4   rB   s     r   Úconfigure_clusterz%TestCaseWithCluster.configure_clusterG   s
  € Ý)Ñ+Ô+€$ÔØ	ÔÐÝ	ÔØ=ØŒlðñ ô ÷ ‚_ÑÔÐà ÐÝð Ø�vÑÐØ„,Ô×Ò�tÝ
ˆdÔÑ
 Ô
 ØØØ&ØØØœ<Ô6ð ñ  ô  ñ ô ð ð 
„\ÔÔ+¨uÒ4Ð4Ø„<Ô×Ò¥Ø #ð!ñ !ô !ñ ô ð ð ð ð 5Ð4r8   c                 óì   — | j                              dd¬¦  «        }|5  |                     d¦  «                             ¦   «         €|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚtestÚ	template1)ÚuserÚdatabasez>select true from pg_catalog.pg_database where datname = 'test'zcreate database test)r   Ú
connectionÚprepareÚfirstÚexecute©r4   Úcs     r   Úinitialize_databasez'TestCaseWithCluster.initialize_databasea   sË   € Ø
„l×ÒØ
Øð ñ ô €!ð 	ð &ð &Ø‡i‚iðñô ÷ ‚U�W„Wðð ‡I‚IÐ$Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   Ÿ=A)Á)A-Á0A-c                 ó*   —  | j         j        |ddi|¤ŽS )NrV   rT   )r   rX   )r4   r5   r6   s      r   rX   zTestCaseWithCluster.connectionm   s!   € Ø	 ˆŒÔ	  $Ð	<¨vÐ	<¸Ð	<Ð	<Ð<r8   c                 óª  •— | j                              ¦   «         �sd| j         _        | j                              d| j         j        d ¬¦  «         t          j                             d¦  «         	 t          j        | j         j	        ¦  «         |  
                    ¦   «          | j                              t          j        ¬¦  «         | j                              ¦   «          |                      ¦   «          nF# t          $ r9 | j          	                    ¦   «          t          j        | j         j	        ¦  «         ‚ w xY w| j                              ¦   «         s2| j                              ¦   «          | j                              ¦   «          |                      ¦   «         }|5  || _         t)          ¦   «         j        |i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nzutf-8rT   )rV   ÚencodingÚlogfileÚ*)rb   )r   r1   ra   Úinitr+   r,   r-   ÚatexitÚregisterr2   rR   ÚstartÚstdoutÚwait_until_startedr^   Ú	ExceptionÚ
unregisterÚrunningrX   Údbr$   Úrun)r4   r5   r6   rm   r7   s       €r   rn   zTestCaseWithCluster.runp   sø  ø€ Ø	Œ×	!Ò	!Ñ	#Ô	#ñ 
Ø"€4„<ÔØ„<×ÒØØŒ|Ô$Øð ñ ô ð õ
 „:×Ò�CÑÔÐð	
Ý
„O�D”LÔ%Ñ&Ô&Ð&Ø×ÒÑÔÐØ„L×Ò¥¤ÐÑ,Ô,Ð,Ø„L×#Ò#Ñ%Ô%Ð%Ø×ÒÑÔÐÐøÝ
ð 
ð 
ð 
Ø„L×ÒÑÔÐÝ
Ô�d”lÔ'Ñ(Ô(Ð(Ø	ð
øøøð 
Œ×	Ò	Ñ	Ô	ð %Ø„<×ÒÑÔÐØ„<×"Ò"Ñ$Ô$Ð$à‡‚ÑÔ€"Ø	ð ð Ø€4„7Ø
�%‰'Œ'Œ+�tÐ
"˜rÐ
"Ð
"ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s    Á/BC4 Ã4AD7Æ GÇGÇG)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   rR   r^   rX   rn   Ú__classcell__©r7   s   @r   r   r   .   sˆ   ø€ € € € € ðð ðð ð ð ð ð*ð ð ð4
&ð 
&ð 
&ð=ð =ð =ðð ð ð ð ð ð ð ð r8   r   c                   óœ   ‡ — e Zd ZdZdZdZdZi ZdZˆ fd„Z	ˆ fd„Z
ˆ fd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zerd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )Útest_connectz(
	postgresql.driver connectivity tests
	ú::1r;   Ú	localhostÚ_test_connectc                 ón   •—  t          ¦   «         j        |i |¤Ž | j        j        j        dk     | _        d S )N)rF   é   )r$   r%   r   r   rQ   Údo_cryptr3   s      €r   r%   ztest_connect.__init__—   s7   ø€ Ø…%�'„'Ô�DÐ˜2ÐÐÐà”,Ô+Ô8¸5Ò@€$„-€-€-r8   c           	      ó²  •— t          ¦   «                              ¦   «          | j        j                             ddi¦  «         t          | j        j        d¦  «        5 }dg}t          r|                     d¦  «         ddg| j	        rdgng z   }|D ]2}|D ]-}| 
                    d	                     ||¬
¦  «        g¦  «         Œ.Œ3| 
                    dg¦  «         | 
                    dg¦  «         t          r| 
                    dg¦  «         | 
                    dg¦  «         t          r| 
                    dg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrD   ÚlogÚwz	0.0.0.0/0z0::0/0Úmd5ÚpasswordÚcryptzhost test {m} {h} {m}
)ÚhÚmzlocal all all trust
z"host test trusted 0.0.0.0/0 trust
zhost test trusted 0::0/0 trust
zhost all test 0.0.0.0/0 trust
zhost all test 0::0/0 trust
)r$   rR   r   rM   rN   r
   Úhba_filer   r   r|   Ú
writelinesÚformat)r4   ÚhbaÚhostsÚmethodsrƒ   r„   r7   s         €r   rR   ztest_connect.configure_clusterœ   sÖ  ø€ Ý�'„'×ÒÑÔÐØ„,Ô×ÒØ˜ð ñ ô ð õ
 ˆDŒLÔ! 3Ñ'Ô'ð 5¨3Øˆ>€5Ýð Ø	‡L‚L�ÑÔÐØ�ZÐ °´Ð$F W I IÀBÑG€7Øð 	ð 	€qØð 	ð 	ˆà‡^‚^Ð.×5Ò5Ø
Ø
ð 6ñ ô ð ñ 	ô 	ð 	ð 	ð	ð ‡>‚>Ð*Ð+Ñ,Ô,Ð,Ø‡>‚>Ð8Ð9Ñ:Ô:Ð:Ýð 9Ø‡N‚NÐ6Ð7Ñ8Ô8Ð8à‡>‚>Ð4Ð5Ñ6Ô6Ð6Ýð 5Ø‡N‚NÐ2Ð3Ñ4Ô4Ð4ð)5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5s   ÁC"EÅEÅEc                 óÚ   •— t          ¦   «                              ¦   «          | j                             d¬¦  «        5 }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT   )rV   a]  
CREATE USER md5 WITH
	ENCRYPTED PASSWORD 'md5_password'
;

-- crypt doesn't work with encrypted passwords:
-- http://www.postgresql.org/docs/8.2/interactive/auth-methods.html#AUTH-PASSWORD
CREATE USER crypt WITH
	UNENCRYPTED PASSWORD 'crypt_password'
;

CREATE USER password WITH
	ENCRYPTED PASSWORD 'password_password'
;

CREATE USER trusted;
				)r$   r^   r   rX   r[   )r4   rm   r7   s     €r   r^   z test_connect.initialize_database¹   s®   ø€ Ý�'„'×ÒÑÔÐØ„|×Ò fÐÑ-Ô-ð °Ø‡:‚:ðñô ð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ½A Á A$Á'A$c                 ó˜  — | j                              ¦   «         \  }}t          d|z   dz   t          |¦  «        z   dz   ¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         |                      |j        d         d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         d S )Núpq://md5:md5_password@ú:z/test?client_encoding=SQL_ASCIIúselect 1©r#   Úclient_encodingÚ	SQL_ASCII)	r   ÚaddressÚpg_openr'   ÚassertEqualrY   rM   Ú
assertTrueÚclosed©r4   Úhostr?   rm   s       r   Útest_pg_open_SQL_ASCIIz#test_connect.test_pg_open_SQL_ASCIIÐ   s  € àŒ|×#Ò#Ñ%Ô%�*€$ˆåØ%¨Ñ,¨sÑ2µS¸±Y´YÑ>Ø&ñ'ñô ð Að 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5Ø×Ò�B”KÐ 1Ô2°KÑ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Að ‡/‚/�"”)ÑÔÐÐÐs   ÁAB%Â%B)Â,B)c           	      óª  — | j                              ¦   «         \  }}t          dd||d¬¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         t          d||d¬¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         d d d ¦  «         n# 1 swxY w Y   t          d	d||d¬
¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         d d d ¦  «         n# 1 swxY w Y   t          dd||dddi¬¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         |                      |j        d         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr€   Úmd5_passwordrT   )rV   r�   r™   r?   rW   r�   r�   r�   )r™   r?   rW   zpq://md5:foobar@)r�   r™   r?   rW   z"pq://md5:foobar@?search_path=ieeeeÚsearch_pathÚpublic)r�   r™   r?   rW   rM   )r   r“   r”   r•   rY   r–   r—   rM   r˜   s       r   Útest_pg_open_keywordsz"test_connect.test_pg_open_keywordsÜ   sü  € ØŒ|×#Ò#Ñ%Ô%�*€$ˆåØ
ØØ
Ø
Øðñ ô ð 6ð 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð ‡/‚/�"”)ÑÔÐåØØ
Ø
Øð	ñ ô ð 6ð
 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6õ ØØØ
Ø
Øðñ ô ð 6ð 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6õ Ø'ØØ
Ø
ØØ˜xÐ(ðñ ô ð 	:ð 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5Ø×Ò�B”K Ô.°Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:sH   ±3A0Á0A4Á7A4Â(3C'Ã'C+Ã.C+Ä3EÅE	ÅE	Å'AGÇGÇGc                 óÈ  — | j                              ¦   «         \  }}t          d|z   dz   t          |¦  «        z   dz   ¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         t          d|z   dz   t          |¦  «        z   dz   ¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         t          d|z   dz   t          |¦  «        z   dz   ¦  «        5 }|                       |                     d¦  «        ¦   «         dg¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         d}t          t          t          j        j        |¦  «        ¦  «        }	 t          j                             d	d ¦  «         d
t          j        d<   dt          j        d<   |t          j        d<   t          |¦  «        t          j        d<   dt          j        d<   t          ¦   «         5 }|                       |                     d¦  «        ¦   «         dg¦  «         |                      |                     d¦  «                             ¦   «         d
¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         d}|D ]<}||         }|€!t          j                             |d ¦  «         Œ-|t          j        |<   Œ=nF# d}|D ]<}||         }|€!t          j                             |d ¦  «         Œ-|t          j        |<   Œ=w xY wt          j                             d	¦  «        }	t          j                             d¦  «        }
	 t          dd¦  «        5 }|                     d                     ||¬¦  «        ¦  «         |                     ¦   «          	 dt          j        d	<   t          j        ¦   «         t          j        d<   t          ¦   «         5 }|                       |                     d¦  «        ¦   «         dg¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         |                      |j        d         d¦  «         d d d ¦  «         n# 1 swxY w Y   |	€!t          j                             d	d ¦  «         n|	t          j        d	<   |
€!t          j                             dd ¦  «         ny|
t          j        d<   ni# |	€!t          j                             d	d ¦  «         n|	t          j        d	<   |
€!t          j                             dd ¦  «         n|
t          j        d<   w xY wd d d ¦  «         n# 1 swxY w Y   t          j                             d¦  «        rt          j        d¦  «         d S d S # t          j                             d¦  «        rt          j        d¦  «         w w xY w)Nr�   rŽ   z/testr�   r�   z pq://password:password_password@zpq://trusted@)ÚPGUSERÚPGPORTÚPGHOSTÚ	PGSERVICEÚ
PGPASSWORDÚ
PGDATABASEr¤   r€   r¡   rœ   r¥   r£   r¢   rT   r¦   úselect current_userr   ÚPGSYSCONFDIRzpg_service.confr   zv
[myserv]
user = password
password = password_password
host = {host}
port = {port}
dbname = test
search_path = public
)r™   r?   Úmyservr�   r�   rž   )r   r“   r”   r'   r•   rY   r–   r—   ÚlistÚmapr(   ÚenvironÚgetÚpoprZ   r
   r-   r‡   ÚflushÚgetcwdrM   ÚpathÚexistsÚremove)r4   r™   r?   rm   ÚpgenvÚstoredÚiÚxÚenvÚ
oldserviceÚoldsysconfdirÚsfs               r   Útest_pg_openztest_connect.test_pg_open  s\  € àŒ|×#Ò#Ñ%Ô%�*€$ˆåØ%¨Ñ,¨sÑ2µS¸±Y´YÑ>Øññô ð 6ð 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5ð	6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð
 ‡/‚/�"”)ÑÔÐåØ/°$Ñ6¸Ñ<½sÀ4¹y¼yÑHØññô ð 6ð 
Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5ð	6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð
 ‡/‚/�"”)ÑÔÐåØ˜$Ñ Ñ$¥s¨4¡y¤yÑ0°7Ñ:ñô ð 6à	Ø×ÒÐ*�B—J’J˜zÑ*Ô*Ñ,Ô,¨t¨fÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð ‡/‚/�"”)ÑÔÐð R€%Ý••B”J”N EÑ*Ô*Ñ+Ô+€&ðÝ„:‡>‚>�+˜tÑ$Ô$Ð$Ø…2„:ˆhÑØ,…2„:ˆlÑØ…2„:ˆhÑÝ˜d™)œ)…2„:ˆhÑØ$…2„:ˆlÑå‰	Œ	ð G�RØ×ÒÐ+�R—Z’Z 
Ñ+Ô+Ñ-Ô-°¨vÑ6Ô6Ð6Ø×Ò�R—Z’ZÐ 5Ñ6Ô6×<Ò<Ñ>Ô>ÀÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð ‡?‚?�2”9ÑÔÐà€1Øð ð €qØ
�Œ(€CØ€yÝ„Z‡^‚^�C˜ÑÔÐÐà…R„Z��_€_ðøð 	€1Øð ð €qØ
�Œ(€CØ€yÝ„Z‡^‚^�C˜ÑÔÐÐà…R„Z��_€_ðøøøõ Œz�~Š~˜kÑ*Ô*€*Ý”*—.’. Ñ0Ô0€-ð!ÝÐ Ñ$Ô$ð 1¨Ø‡H‚Hð ÷ ‚F�$˜t€FÑ$Ô$ñ&ô &ð &ð ‡H‚H�J„J€Jð1Ø'…R„Z�ÑÝ"$¤)¡+¤+…R„Z�ÑÝ
‰)Œ)ð =�rØ
×ÒÐ-�r—z’z *Ñ-Ô-Ñ/Ô/°$°Ñ8Ô8Ð8Ø
×Ò�r—z’zÐ"7Ñ8Ô8×>Ò>Ñ@Ô@À*ÑMÔMÐMØ
×Ò�r”{ =Ô1°8Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð
 	ÐÝ„j‡n‚n�[ $Ñ'Ô'Ð'Ð'à *…b„j�ÑØÐÝ„j‡n‚n�^ TÑ*Ô*Ð*Ð*à#0…b„j�Ñ Ð øð 	ÐÝ„j‡n‚n�[ $Ñ'Ô'Ð'Ð'à *…b„j�ÑØÐÝ„j‡n‚n�^ TÑ*Ô*Ð*Ð*à#0…b„j�Ñ Ð0Ð0Ð0Ð0ð51ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ8 	„g‡n‚nÐ&Ñ'Ô'ð !Ý„IÐÑ Ô Ð Ð Ð ð!ð !ø…b„g‡n‚nÐ&Ñ'Ô'ð !Ý„IÐÑ Ô Ð Ð ð!øøøsØ   Á3BÂBÂBÃ3DÄDÄDÅ3FÆF Æ#F Ç0BM É6A.K0Ë$M Ë0K4Ë4M Ë7K4Ë8M ÍANÏX+ Ï,?W)Ð,=U4Ñ)BTÓ8U4ÔT	ÔU4ÔT	ÔU4ÔA%W)Õ4A&W×W)×X+ ×)W-×-X+ ×0W-×1X+ Ø+6Y!c           	      ó$  — | j                              ¦   «         \  }}t          j        dddd||dœ| j        ¤Ž}|                      |                     ¦   «                              d¦  «                             ¦   «         d         d¦  «         | 	                    ¦   «          |  
                    t          j        |                     ¦   «         j        d¦  «         | j        r»t          j        dddd	||dœ| j        ¤Ž}|                      |                     ¦   «                              d¦  «                             ¦   «         d         d¦  «         | 	                    ¦   «          |  
                    t          j        |                     ¦   «         j        d¦  «         t          j        dd
dd||dœ| j        ¤Ž}|                      |                     ¦   «                              d¦  «                             ¦   «         d         d¦  «         | 	                    ¦   «          |  
                    t          j        |                     ¦   «         j        d¦  «         t          j        dddd||dœ| j        ¤Ž}|                      |                     ¦   «                              d¦  «                             ¦   «         d         d¦  «         | 	                    ¦   «          |  
                    t          j        |                     ¦   «         j        d¦  «         d S )Nr€   rT   rœ   )rV   rW   r�   r™   r?   r�   r   r#   r‚   Úcrypt_passwordr�   Úpassword_passwordÚtrustedr"   © )r   r“   r   ÚconnectÚparamsr•   Úcursorr[   ÚfetchoneÚcloseÚassertRaisesrJ   ÚConnectionDoesNotExistErrorr|   )r4   r™   r?   ÚMD5ÚCRYPTÚPASSWORDÚTRUSTs          r   Útest_dbapi_connectztest_connect.test_dbapi_connectW  sò  € ØŒ|×#Ò#Ñ%Ô%�*€$ˆÝŒð 	Ø
ØØØ
�tð		ð 	ð
 
„[ð	ð 	€#ð ×Ò�3—:’:‘<”<×'Ò'¨
Ñ3Ô3×<Ò<Ñ>Ô>¸qÔAÀ1ÑEÔEÐEØ‡)‚)�+„+€+Ø×Ò•FÔ6Ø‡:‚:�<„<Ô˜ñô ð ð 
„]ð ÝŒ?ð ØØØØ˜ð	ð ð
 „kðð €5ð ×Ò�E—L’L‘N”N×*Ò*¨:Ñ6Ô6×?Ò?ÑAÔAÀ!ÔDÀaÑHÔHÐHØ‡;‚;�=„=€=Ø×Ò•VÔ7Ø	‡L‚L�N„NÔ˜Jñô ð õ Œ_ð Ø
ØØ!Ø
�tð	ð ð
 
„[ðð €(ð ×Ò�8—?’?Ñ$Ô$×,Ò,¨ZÑ8Ô8×AÒAÑCÔCÀAÔFÈÑJÔJÐJØ
‡.‚.ÑÔÐØ×Ò•FÔ6Ø‡?‚?ÑÔÔ˜jñô ð õ Œ/ð Ø
ØØØ
�tð	ð ð
 
„[ðð €%ð ×Ò�5—<’<‘>”>×)Ò)¨*Ñ5Ô5×>Ò>Ñ@Ô@ÀÔCÀQÑGÔGÐGØ‡+‚+�-„-€-Ø×Ò•FÔ6Ø‡<‚<�>„>Ô˜:ñô ð ð ð r8   c                 ó<  — t          j        j        dddd| j                             ¦   «         d         dœ| j        ¤Ž} |¦   «         5 }|                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT   r;   r#   ©rV   r™   rW   r?   r�   rÁ   )	Ú	pg_driverr&   Úip4r   r“   rÃ   r•   rY   rZ   ©r4   ÚCr]   s      r   Útest_IP4_connectztest_connect.test_IP4_connectŽ  sé   € ÝÔÔð Ø
Ø
ØØ
Œ,×
Ò
Ñ
 Ô
  Ô
#ð	ð ð
 
„[ðð €!ð 	€q�s„sð 6ˆaØ×Ò�A—I’I˜jÑ)Ô)×/Ò/Ñ1Ô1°1Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6ó   Á<BÂBÂBc                 ó<  — t          j        j        dddd| j                             ¦   «         d         dœ| j        ¤Ž} |¦   «         5 }|                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT   rw   r#   rÏ   r�   rÁ   )	rÐ   r&   Úip6r   r“   rÃ   r•   rY   rZ   rÒ   s      r   Útest_IP6_connectztest_connect.test_IP6_connectš  sé   € ÝÔÔð ØØØØŒ<×ÒÑ!Ô! !Ô$ð	ð ð
 „kðð €1ð 	
ˆ‰Œð 7ˆqØ×Ò�Q—Y’Y˜zÑ*Ô*×0Ò0Ñ2Ô2°AÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7rÕ   c                 ó<  — t          j        j        dddd| j                             ¦   «         d         dœ| j        ¤Ž} |¦   «         5 }|                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrT   rx   r#   rÏ   r�   rÁ   )	rÐ   r&   r™   r   r“   rÃ   r•   rY   rZ   rÒ   s      r   Útest_Host_connectztest_connect.test_Host_connect¥  sé   € ÝÔÔð Ø
Ø
ØØ
Œ,×
Ò
Ñ
 Ô
  Ô
#ð	ð ð
 
„[ðð €!ð 	€q�s„sð 6ˆaØ×Ò�A—I’I˜jÑ)Ô)×/Ò/Ñ1Ô1°1Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6rÕ   c                 óè   —  | j         j        dddddœ| j        ¤Ž}|5  |                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr€   rœ   rT   ©rV   r�   rW   r§   rÁ   ©r   rX   rÃ   r•   rY   rZ   r\   s     r   Útest_md5_connectztest_connect.test_md5_connect°  sæ   € Ø€d„lÔð Ø
ØØðð ð 
„[ð	ð €!ð 	ð Eð EØ×Ò�A—I’IÐ3Ñ4Ô4×:Ò:Ñ<Ô<¸eÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð Eð Eó   ž<A'Á'A+Á.A+c                 óú   — | j         rs | j        j        dddddœ| j        ¤Ž}|5  |                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )Nr‚   r¾   rT   rÜ   r§   rÁ   )r|   r   rX   rÃ   r•   rY   rZ   r\   s     r   Útest_crypt_connectztest_connect.test_crypt_connectº  sý   € Ø	„]ð HØ€t„|Ôð ØØØðð ð „kð	ð €1ð 	
ð Hð HØ×Ò�Q—Y’YÐ4Ñ5Ô5×;Ò;Ñ=Ô=¸wÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð HðHð Hs   ¥<A.Á.A2Á5A2c                 óì   — | j                              ddd¬¦  «        }|5  |                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   r¿   rT   rÜ   r§   )r   rX   r•   rY   rZ   r\   s     r   Útest_password_connectz"test_connect.test_password_connectÅ  sÖ   € Ø
„l×ÒØ
Ø!Øð ñ ô €!ð
 	ð Jð JØ×Ò�A—I’IÐ3Ñ4Ô4×:Ò:Ñ<Ô<¸jÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Js    <A)Á)A-Á0A-c                 óè   —  | j         j        dddddœ| j        ¤Ž}|5  |                      |                     d¦  «                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÀ   r"   rT   rÜ   r§   rÁ   rÝ   r\   s     r   Útest_trusted_connectz!test_connect.test_trusted_connectÎ  sæ   € Ø€d„lÔð Ø
ØØðð ð 
„[ð	ð €!ð 	ð Ið IØ×Ò�A—I’IÐ3Ñ4Ô4×:Ò:Ñ<Ô<¸iÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ið Ið Irß   c                 óÆ  — t           sd S t          j                             | j        j        d| j        j        d         z   ¦  «        }t          j         	                    d|¬¦  «        } |¦   «         5 }|  
                    |                     d¦  «                             ¦   «         d¦  «         |  
                    |j        d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nú	.s.PGSQL.r?   rT   )rV   Úunixr�   r#   )Úhas_unix_sockr(   r±   Újoinr   rP   rM   rÐ   r&   rè   r•   rY   rZ   Úclient_address)r4   Úunix_domain_socketrÓ   r]   s       r   Útest_Unix_connectztest_connect.test_Unix_connectØ  s  € Ý	ð 
Ø	€6Ý”w—|’|Ø„<ÔØ�”Ô& vÔ.Ñ.ñô Ðõ Ô×ÒØ
Ø
ð ñ ô €!ð 	€q�s„sð ,ˆaØ×Ò�A—I’I˜jÑ)Ô)×/Ò/Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò�AÔ$ dÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   Á2ACÃCÃCc                 óÀ  — t           sd S t          j                             | j        j        d| j        j        d         z   ¦  «        }t          |d¬¦  «        5 }|                      | 	                    d¦  «         
                    ¦   «         d¦  «         |                      |j        d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d|                     dd	¦  «        z   d
z   ¦  «        5 }|                      | 	                    d¦  «         
                    ¦   «         d¦  «         |                      |j        d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrç   r?   rT   )rè   rV   r�   r#   zpq://test@[unix:ú/rŽ   ú])ré   r(   r±   rê   r   rP   rM   r”   r•   rY   rZ   rë   Úreplace)r4   rì   r]   s      r   Útest_pg_open_unixztest_connect.test_pg_open_unixç  sÃ  € Ý	ð 
Ø	€6Ý”w—|’|Ø„<ÔØ�”Ô& vÔ.Ñ.ñô Ðõ Ð(°Ð8Ñ8Ô8ð ,¸AØ×Ò�A—I’I˜jÑ)Ô)×/Ò/Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò�AÔ$ dÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,õ Ð!Ð$6×$>Ò$>¸sÀ3Ñ$GÔ$GÑGÈ#ÑMÑNÔNð ,ÐRSØ×Ò�A—I’I˜jÑ)Ô)×/Ò/Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò�AÔ$ dÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s&   ÁAB;Â;B?ÃB?Ã/AEÅEÅE)ro   rp   rq   rr   r×   rÑ   r™   rÃ   r!   r%   rR   r^   rš   rŸ   r¼   rÍ   rÔ   r   rØ   rÚ   rÞ   rá   rã   rå   rí   rò   rs   rt   s   @r   rv   rv   �   st  ø€ € € € € ðð ð €Ø€Ø€Ø
€Ø&ÐðAð Að Að Að Að
5ð 5ð 5ð 5ð 5ð:ð ð ð ð ð.
ð 
ð 
ð':ð ':ð ':ðRP!ð P!ð P!ðd5ð 5ð 5ðn	6ð 	6ð 	6ð ð 
7ð	7ð 	7ð 	7ð	6ð 	6ð 	6ðEð Eð Eð	Hð 	Hð 	HðJð Jð JðIð Ið Ið,ð ,ð ,ð,ð ,ð ,ð ,ð ,ð ,ð ,r8   rv   Ú__main__)r+   r(   Úunittestre   r   r   Úpython.socketr   r"   r   r   r/   r   rJ   r	   r   rÐ   r
   r”   r   ÚplatformÚmswr   ré   ÚTestCaser   rv   ro   ÚmainrÁ   r8   r   ú<module>rú      s†  ðð €
€
€
Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€à /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð ðð ð ð  
„lÐ(Ð(€ð ˆ>ÑÔÐ' C €à�€ð]ð ]ð ]ð ]ð ]˜(Ô+ñ ]ô ]ð ]ð~f,ð f,ð f,ð f,ð f,Ð&ñ f,ô f,ð f,ðP ˆzÒÐØ€„�„€€€ð Ðr8   