§
    öÛg?  ã                   óº  — d dl Z d dlZd dlmZ ddlmZ dZde j        z   dz   ddid	e j        z   d
z   fd
e j        z   dz   ddid
e j        z   d	z   fde j        z   d
z   ddid	e j        z   d
z   fde j        z   dz   ddide j        z   dz   fde j        z   dz   ddide j        z   d
z   fde j        z   dz   ddide j        z   dz   fde j        z   d
z   ddide j        z   dz   fde j        z   ddidfdddid
fdddidfdddidfdddidfdddidfdddidfdddide j        z   dz   fdddide j        z   d z   fgZ G d!„ d"ej	        ¦  «        Z
ed#k    r ej        ¦   «          dS dS )$é    N)ÚStringIOé   )Ú
configfilezâ
##
# A sample config file.
##
# This provides a good = test for alter_config.

#shared_buffers = 4500
search_path = window,$user,public
shared_buffers = 2500

port = 5234
listen_addresses = 'localhost'
listen_addresses = '*'
ú	foo = barÚfooÚnewbarzfoo = 'newbar'z
#foo = barz
foo = noneÚbarzfoo = 'bar'z#foo = noneÚnonezfoo = 'none'z#foo = somezfoo = Úfehzfoo = 'feh'z"foo = val this should be commentedÚnewvalz(foo = 'newval' #this should be commentedz##foo = val this should be commentedz(#foo = 'val'foo this should be commentedz)#foo = 'val'#foo this should be commentedz+foo = 'newval'#foo this should be commentedÚ Únewvarzbar = 'newvar'znew'varzbar = 'new''var'c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )Útest_configfilec                 óÈ   — t          j        |¦  «        }|�K|                      d|›d||d                  ›d|d         ›d||d                  ›d|d         ›d�¦  «         d S d S )Nz
With line z, parsed out to r   z, z, and z5, but expected None to be returned by parse function.©r   Ú
parse_lineÚfail)ÚselfÚlineÚsls      úU/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_configfile.pyÚ	parseNoneztest_configfile.parseNone„   s~   € ÝÔ˜TÑ"Ô"€"Ø€^Ø‡9‚9€9ð 
€T€Tˆ4��1”Œ;ˆ;ˆ;˜˜1œ˜˜˜t B q¤Eœ{˜{˜{¨B¨q¬E¨E¨Eðñô ð ð ð ð €^ó    c                 ó\  — |||fz  }t          j        |¦  «        }|€|                      d|›d|›d|›d�¦  «         |\  }}||         |k    r(|                      d|›d|›d||         ›d|›d	�	¦  «         ||         |k    r*|                      d
|›d|›d||         ›d|›d	�	¦  «         d S d S )Nz
expecting z and z from line z%, but got None(syntax error) instead.zexpecting key z
 for line z
, but got z from z	 instead.zexpecting value r   )r   r   ÚkeyÚvalr   ÚkÚvs          r   ÚparseExpectztest_configfile.parseExpectŽ   s  € Ø	��SˆzÑ	€$ÝÔ˜TÑ"Ô"€"Ø€ZØ‡9‚9€9ð 	€S€Sˆ#ˆ#ˆ#ˆtˆtˆtðñô ð ð 
�$€!€QØ	ˆ!„W�‚^€^Ø‡9‚9€9ð 	€S€Sˆ$ˆ$ˆ$��Q”��˜˜˜ðñô ð ð 
ˆ!„W�‚^€^Ø‡9‚9€9ð 	€S€Sˆ$ˆ$ˆ$��Q”��˜˜˜ðñô ð ð ð ð €^r   c                 óä  — |                       ddd¦  «         |                       dt          j        z   dd¦  «         |                       dt          j        z   dd¦  «         |                       dt          j        z   dd¦  «         |                       dt          j        z   dd	¦  «         |                       d
t          j        z   dd	¦  «         |                       dt          j        z   dd	¦  «         |                       dt          j        z   dd	¦  «         |                       dt          j        z   dd	¦  «         |                       dt          j        z   dd¦  «         |                       dt          j        z   dd¦  «         |                       dt          j        z   dd¦  «         |                      dt          j        z   ¦  «         |                      d¦  «         |                      d¦  «         d S )Nz#%s = %sr   r
   z#%s=%sr	   z #%s=%sz%s =%sz %s=%s ÚBarz	 %s = %s z
# %s = %s z	 # %s = %s z  # %s =   %s z  # %s = %sz' Bar 'z%s = %s# commentr   z  # %s = %s # A # commentz
' B''a#r 'z #i  # foo =   Bar z#bar)r    ÚosÚlinesepr   )r   s    r   Ú
testParserztest_configfile.testParser¨   s¶  € Ø×Ò�:˜u fÑ-Ô-Ð-Ø×Ò�8�BœJÑ&¨¨uÑ5Ô5Ð5Ø×Ò�9�RœZÑ'¨°Ñ6Ô6Ð6Ø×Ò�8�BœJÑ&¨¨uÑ5Ô5Ð5Ø×Ò�9�RœZÑ'¨°Ñ6Ô6Ð6Ø×Ò�;�rœzÑ)¨5°%Ñ8Ô8Ð8Ø×Ò�<¥¤
Ñ*¨E°5Ñ9Ô9Ð9Ø×Ò�?¥2¤:Ñ-¨u°eÑ<Ô<Ð<Ø×ÒÐ#¥B¤JÑ.°°uÑ=Ô=Ð=Ø×Ò�=¥¤Ñ+¨U°IÑ>Ô>Ð>Ø×ÒÐ%¥b¤jÑ0°%¸Ñ<Ô<Ð<Ø×ÒÐ.­r¬zÑ9¸5À,ÑOÔOÐOà‡.‚.Ð&¥r¤zÑ1Ñ2Ô2Ð2Ø‡.‚.�ÑÔÐØ‡.‚.�ÑÔÐÐÐr   c                 óB  — dt           j        z   dz   t           j        z   dz   t           j        z   }t          j        |                     t           j        ¦  «        ¦  «        }|                      |d         dk    ¦  «         |                      |d         dk    ¦  «         d S )Nr   z# A comment, yes.z bar = foo # yet?r   r	   )r#   r$   r   Úread_configÚsplitÚ
assertTrue)r   ÚsampleÚds      r   ÚtestConfigReadztest_configfile.testConfigReadº   s„   € Ø•r”zÑ!Ð"5Ñ5µb´jÑ@ÐATÑTÕUWÔU_Ñ_€&ÝÔ˜VŸ\š\­"¬*Ñ5Ô5Ñ6Ô6€!Ø‡/‚/�!�E”(˜eÒ#Ñ$Ô$Ð$Ø‡/‚/�!�E”(˜eÒ#Ñ$Ô$Ð$Ð$Ð$r   c                 óˆ   — t          ¦   «         }ddi}t          j        ||j        ¦  «         |                     d¦  «         d S )Nr   z	'foo bar'r   )r   r   Úwrite_configÚwriteÚseek)r   Ústrior+   s      r   ÚtestConfigWriteReadz#test_configfile.testConfigWriteReadÀ   sA   € Ý
‰*Œ*€%àˆð€!õ Ô˜!˜Uœ[Ñ)Ô)Ð)Ø‡*‚*ˆQ�-„-€-€-€-r   c           
      ó:  — d}t           D ]�\  }}}d„ |                     t          j        ¦  «        D ¦   «         }d                     t          j        ||¦  «        ¦  «        }|                      |                     ¦   «         |k    d|||||fz  ¦  «         |dz  }Œ‘d S )Nr   c              3   ó4   K  — | ]}|t           j        z   V — Œd S ©N©r#   r$   ©Ú.0Úxs     r   ú	<genexpr>z3test_configfile.testWinningCases.<locals>.<genexpr>Ë   s(   è è € Ð
<Ð
<˜aˆ1�rŒz‰>Ð
<Ð
<Ð
<Ð
<Ð
<Ð
<r   r   z<On %d, before, %r, did not become after, %r; got %r using %ré   )	Úwinning_casesr(   r#   r$   Újoinr   Úalter_configr)   Ústrip)r   ÚiÚbeforeÚaltersÚafterÚbefgÚbecames          r   ÚtestWinningCasesz test_configfile.testWinningCasesÈ   s²   € Ø€!Ý,ð 	
ð 	
Ñ€fˆf�eØ
<Ð
< 6§<¢<µ´
Ñ#;Ô#;Ð
<Ñ
<Ô
<€4Ø�GŠG•JÔ+¨F°DÑ9Ô9Ñ:Ô:€6Ø‡?‚?Ø
‡L‚L�N„N�eÒØBØˆ��v˜vðEñ ñô ð ð ˆ�6€1€1ð	
ð 	
r   c                 ó  — t          ¦   «         }|                     dt          j        z   dz   t          j        z   dz   ¦  «         |                     d¦  «         t          j        dddœ|¦  «        }t          j        |¦  «        }|                      |d         dk    ¦  «         |                      |d	         dk    ¦  «         |                      d
 	                    |¦  «         
                    d	¦  «        dk    ¦  «         d S )Nr   z # bleh = unsetz # grr = 'oh yeah''s'r   Úyesr   )r   Úblehr   rI   r   r;   )r   r/   r#   r$   r0   r   r>   r'   r)   r=   Úcount)r   r1   Úlinesr+   s       r   ÚtestSimpleConfigAlterz%test_configfile.testSimpleConfigAlterÕ   sÛ   € å
‰*Œ*€%Ø‡+‚+ˆk�"œ*Ñ$Ð%6Ñ6µr´zÑAÐBYÑYÑZÔZÐZØ‡*‚*ˆQ�-„-€-Ý
Ô
!¨5¸5Ð"AÐ"AÀ5Ñ
IÔ
I€%ÝÔ˜UÑ#Ô#€!Ø‡/‚/�!�E”(˜eÒ#Ñ$Ô$Ð$Ø‡/‚/�!�F”)˜uÒ$Ñ%Ô%Ð%Ø‡/‚/�"—'’'˜%‘.”.×&Ò& vÑ.Ô.°!Ò3Ñ4Ô4Ð4Ð4Ð4r   c                 ó4  — t          j        dd dœd„ t                               d¦  «        D ¦   «         ¦  «        }t          j        |¦  «        }|                      |d         dk    ¦  «         |                      |                     d¦  «        d u ¦  «         t          j        ddi|¦  «        }t          j        |¦  «        }|                      |                     d¦  «        dk    ¦  «         |                      |d d…         |d d…         k    ¦  «         d S )	NÚ800)Úshared_buffersÚportc              3   ó4   K  — | ]}|t           j        z   V — Œd S r5   r6   r7   s     r   r:   z,test_configfile.testAroma.<locals>.<genexpr>ä   s(   è è € Ð?Ð?˜!€q�2Œ:�~Ð?Ð?Ð?Ð?Ð?Ð?r   ú
rO   rP   Ú1é   )r   r>   Úsample_config_Aromar(   r'   r)   Úget)r   rK   r+   ÚnlinesÚd2s        r   Ú	testAromaztest_configfile.testAromaà   s  € Ý
Ô
!ØØð#ð #ð @Ð?Õ2×8Ò8¸Ñ>Ô>Ð?Ñ?Ô?ñô €%õ
 Ô˜UÑ#Ô#€!Ø‡/‚/�!Ð$Ô%¨Ò.Ñ/Ô/Ð/Ø‡/‚/�!—%’%˜‘-”- 4Ð'Ñ(Ô(Ð(åÔ" F¨S >°5Ñ9Ô9€&ÝÔ˜fÑ%Ô%€"Ø‡/‚/�"—&’&˜‘.”. CÒ'Ñ(Ô(Ð(Ø‡/‚/Ø	ˆ"ˆ1ˆ"„:��r˜�r”Òñô ð ð ð r   c                 ó  — t          j        dt          j        z   dg¦  «        }|                      t          |                     ¦   «         ¦  «        dk    ¦  «         t          j        dt          j        z   dgd„ ¬¦  «        }t          |                     ¦   «         ¦  «        }|                      t          |¦  «        dk    ¦  «         |                      |d         dk    ¦  «         |                      |d         d	k    ¦  «         d S )
Nr   z	bar = foor   c                 ó   — | dk    S )Nr	   © )r9   s    r   ú<lambda>z/test_configfile.testSelection.<locals>.<lambda>ø   s
   € ˜˜Uš
€ r   )Úselectorr;   r   r	   r   )r   r'   r#   r$   r)   ÚlenÚkeysÚlist)r   ÚredÚrkeyss      r   ÚtestSelectionztest_configfile.testSelectionñ   sÝ   € åÔ ­B¬JÑ 6¸ÐDÑEÔE€#Ø‡/‚/•#�c—h’h‘j”j‘/”/ QÒ&Ñ'Ô'Ð'õ 	Ô ­B¬JÑ 6¸ÐDØ"Ð"ð	$ñ 	$ô 	$€#å
ˆs�xŠx‰zŒzÑ
Ô
€%Ø‡/‚/•#�e‘*”* ’/Ñ"Ô"Ð"Ø‡/‚/�%˜”(˜eÒ#Ñ$Ô$Ð$Ø‡/‚/�#�e”* Ò%Ñ&Ô&Ð&Ð&Ð&r   N)Ú__name__Ú
__module__Ú__qualname__r   r    r%   r,   r2   rF   rL   rY   rd   r\   r   r   r   r   ƒ   s›   € € € € € ðð ð ðð ð ð4ð ð ð$%ð %ð %ðð ð ð
ð 
ð 
ð	5ð 	5ð 	5ðð ð ð"'ð 'ð 'ð 'ð 'r   r   Ú__main__)r#   ÚunittestÚior   r   r   rU   r$   r<   ÚTestCaser   re   Úmainr\   r   r   ú<module>rm      sÂ  ðð 
€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð4 ˆbŒjÑ˜Ñ$Øˆ8ÐØ�2”:Ñ˜lÑ*ð	ð ˆrŒzÑ˜+Ñ%Øˆ8ÐØˆrŒzÑÐ*Ñ*ð	ð ˆbŒjÑ˜Ñ%Øˆ8ÐØ�2”:Ñ˜lÑ*ð	ð ˆbŒjÑ˜Ñ%Øˆ5€/Ø�”
Ñ˜=Ñ(ð	ð �”
Ñ˜;Ñ&Øˆ6ÐØ�”Ñ˜LÑ(ð	ð �”
Ñ˜=Ñ(Øˆ5€/Ø�”
Ñ˜=Ñ(ð	ð �”
Ñ˜<Ñ'Øˆ5€/Ø�”
Ñ˜=Ñ(ð	ð ˆ2Œ:ÑØˆ5€/Øð	ð Øˆ4€.Øð	ð 'Øˆ8ÐØ,ð	ð (Øˆ8ÐØ,ð	ð -Øˆ8ÐØ,ð	ð .Øˆ8ÐØ/ð	ð Øˆ8ÐØð	ð Øˆ8ÐØ�”
ÑÐ+Ñ+ð	ð Øˆ9ÐØ�”
ÑÐ-Ñ-ð	ðwa€ðFy'ð y'ð y'ð y'ð y'�hÔ'ñ y'ô y'ð y'ðv ˆzÒÐØ€„�„€€€ð Ðr   