Ë
    êmxii.  ã                   óÂ   — d dl Z d dlmZ d dlZd dlZd dlmZ d dlZd dlmZm	Z	 d dl
mZ d dlZej                  rd dlmZ  G d„ d«      Z G d	„ d
ej                   «      Zy)é    N)ÚStringIO)Úmock)ÚOptionParserÚError)Úbasestring_type)ÚListc                   ó"   — e Zd Zd„ Zed„ «       Zy)ÚEmailc                 óN   — t        |t        «      rd|v r|| _        y t        «       ‚)Nú@)Ú
isinstanceÚstrÚ_valueÚ
ValueError)ÚselfÚvalues     úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/tornado/test/options_test.pyÚ__init__zEmail.__init__   s!   € Ü�eœSÔ! c¨U¡lØˆD�Kä“,Ðó    c                 ó   — | j                   S ©N)r   ©r   s    r   r   zEmail.value   s   € à�{‰{Ðr   N)Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr   © r   r   r
   r
      s   „ òð ñó ñr   r
   c                   ó®   — e 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d„ Zy)ÚOptionsTestc                 óœ   — t        «       }|j                  dd¬«       |j                  ddg«       | j                  |j                  d«       y )NÚportéP   ©Údefaultúmain.pyz
--port=443é»  )r   ÚdefineÚparse_command_lineÚassertEqualr!   ©r   Úoptionss     r   Útest_parse_command_linez#OptionsTest.test_parse_command_line   s@   € Ü“.ˆØ�‰�v rˆÔ*Ø×"Ñ" I¨|Ð#<Ô=Ø×Ñ˜Ÿ™ sÕ+r   c                 ó  — t        «       }|j                  dd¬«       |j                  dd¬«       |j                  d«       t        j                  j	                  t        j                  j                  t        j                  j                  t        «      «      d«      }|j                  |«       | j                  |j                  d«       | j                  |j                  d	«       | j                  |j                  |«       y )
Nr!   r"   r#   ÚusernameÚfooÚmy_pathúoptions_test.cfgr&   u   æ�Žåº·)r   r'   ÚosÚpathÚjoinÚdirnameÚabspathÚ__file__Úparse_config_filer)   r!   r.   r0   )r   r+   Úconfig_paths      r   Útest_parse_config_filez"OptionsTest.test_parse_config_file$   sµ   € Ü“.ˆØ�‰�v rˆÔ*Ø�‰�z¨5ˆÔ1Ø�‰�yÔ!Ü—g‘g—l‘lÜ�G‰G�O‰OœBŸG™GŸO™O¬HÓ5Ó6Ð8Jó
ˆð 	×!Ñ! +Ô.Ø×Ñ˜Ÿ™ sÔ+Ø×Ñ˜×)Ñ)¨8Ô4Ø×Ñ˜Ÿ™¨+Õ6r   c                 ót  ‡ — t        «       }d‰ _        ˆ fd„}|j                  |«       |j                  dgd¬«       ‰ j	                  ‰ j                  «       |j                  dg«       ‰ j                  ‰ j                  «       d‰ _        |j                  dg«       ‰ j                  ‰ j                  «       y )NFc                  ó   •— d‰ _         y )NT)Úcalledr   s   €r   Úcallbackz2OptionsTest.test_parse_callbacks.<locals>.callback5   s
   ø€ ØˆD�Kr   r%   )Úfinal)r   r=   Úadd_parse_callbackr(   ÚassertFalseÚ
assertTrue)r   r+   r>   s   `  r   Útest_parse_callbacksz OptionsTest.test_parse_callbacks1   sš   ø€ Ü“.ˆØˆŒô	ð 	×"Ñ" 8Ô,ð 	×"Ñ" I ;°eÐ"Ô<Ø×Ñ˜Ÿ™Ô%ð 	×"Ñ" I ;Ô/Ø�‰˜Ÿ™Ô$ð ˆŒØ×"Ñ" I ;Ô/Ø�‰˜Ÿ™Õ$r   c                 óp  — t        «       }	 t        j                  }t        «       t        _        | j	                  t
        «      5  |j                  ddg«       d d d «       t        j                  j                  «       }|t        _        | j                  d|«       y # 1 sw Y   ŒExY w# t        _        w xY w)Nr%   z--helpzUsage:)	r   ÚsysÚstderrr   ÚassertRaisesÚ
SystemExitr(   ÚgetvalueÚassertIn)r   r+   Úorig_stderrÚusages       r   Ú	test_helpzOptionsTest.test_helpH   s‹   € Ü“.ˆð	%ÜŸ*™*ˆKÜ!›ŒCŒJØ×"Ñ"¤:Ó.ñ BØ×*Ñ*¨I°xÐ+@ÔA÷Bä—J‘J×'Ñ'Ó)ˆEà$ŒCŒJØ�‰�h Õ&÷Bð Bûð %ŒC�Jús#   Œ8B( ÁBÁ&B( ÂB%Â!B( Â(B5c                 óz  — t        «       }|j                  dd¬«       t        «       }|j                  dt        ¬«       |j                  g d¢«      }| j	                  |ddg«       | j                  |j                  «       |j                  |«      }| j	                  |g «       | j	                  |j                  d	«       	 t        j                  }t        «       t        _	        | j                  t        «      5  |j                  dd
g«       d d d «       |t        _	        y # 1 sw Y   ŒxY w# t        _	        w xY w)NÚverboseFr#   r/   ©Útype)r%   ú	--verboseÚ
subcommandú	--foo=barrS   rT   ÚbarrR   )r   r'   r   r(   r)   rB   rO   r/   rE   rF   r   rG   r   )r   Úbase_optionsÚsub_optionsÚrestÚrest2rK   s         r   Útest_subcommandzOptionsTest.test_subcommandT   s
  € Ü#“~ˆØ×Ñ˜I¨uÐÔ5Ü"“nˆØ×Ñ˜5¤sÐÔ+Ø×.Ñ.Ú?ó
ˆð 	×Ñ˜ ¨kÐ:Ô;Ø�‰˜×,Ñ,Ô-Ø×.Ñ.¨tÓ4ˆØ×Ñ˜ Ô#Ø×Ñ˜Ÿ™¨%Ô0ð	%ÜŸ*™*ˆKÜ!›ŒCŒJØ×"Ñ"¤5Ó)ñ LØ×.Ñ.°¸kÐ/JÔK÷Lð %ŒC�J÷Lð Lûð %ŒC�Jús$   Ã8D- Ã9D!ÄD- Ä!D*Ä&D- Ä-D:c                 óŽ   — t        «       }|j                  ddt        ¬«       d|_        | j	                  |j                  d«       y ©Nr/   é   ©r$   rQ   é   )r   r'   Úintr/   r)   r*   s     r   Útest_setattrzOptionsTest.test_setattrk   s6   € Ü“.ˆØ�‰�u a¬cˆÔ2ØˆŒØ×Ñ˜Ÿ™ aÕ(r   c                 óª   — t        «       }|j                  ddt        ¬«       | j                  t        «      5  d|_        d d d «       y # 1 sw Y   y xY w)Nr/   r]   r^   Ú2)r   r'   r`   rG   r   r/   r*   s     r   Útest_setattr_type_checkz#OptionsTest.test_setattr_type_checkq   sG   € ô “.ˆØ�‰�u a¬cˆÔ2Ø×ÑœuÓ%ñ 	ØˆGŒK÷	÷ 	ñ 	ús   ¸A	Á	Ac                 ó–   — g }t        «       }|j                  ddt        |j                  ¬«       d|_        | j                  |dg«       y )Nr/   r]   )r$   rQ   r>   r_   )r   r'   r`   Úappendr/   r)   )r   Úvaluesr+   s      r   Útest_setattr_with_callbackz&OptionsTest.test_setattr_with_callbacky   s?   € ØˆÜ“.ˆØ�‰�u a¬c¸F¿M¹MˆÔJØˆŒØ×Ñ˜ ! Õ%r   c                 óf   — t        «       }|j                  dd¬«       |j                  dd¬«       |S )NÚar]   r#   Úbr_   )r   r'   r*   s     r   Ú_sample_optionszOptionsTest._sample_options€   s.   € Ü“.ˆØ�‰�s AˆÔ&Ø�‰�s AˆÔ&Øˆr   c                 óp   — | j                  «       }| j                  h d£t        t        |«      «      «       y )N>   rj   rk   Úhelp)rl   r)   ÚsetÚiterr*   s     r   Ú	test_iterzOptionsTest.test_iter†   s*   € Ø×&Ñ&Ó(ˆà×ÑÒ+¬S´°g³Ó-?Õ@r   c                 óN   — | j                  «       }| j                  d|d   «       y )Nr]   rj   )rl   r)   r*   s     r   Útest_getitemzOptionsTest.test_getitem‹   s$   € Ø×&Ñ&Ó(ˆØ×Ñ˜˜G C™LÕ)r   c                 ó|   — t        «       }|j                  ddt        ¬«       d|d<   | j                  |d   d«       y r\   )r   r'   r`   r)   r*   s     r   Útest_setitemzOptionsTest.test_setitem�   s8   € Ü“.ˆØ�‰�u a¬cˆÔ2Øˆ�‰Ø×Ñ˜ ™¨Õ+r   c                 óœ   — | j                  «       }ddd|j                  fg}t        |j                  «       «      }| j	                  ||«       y )N)rj   r]   )rk   r_   rn   )rl   rn   ÚsortedÚitemsr)   )r   r+   ÚexpectedÚactuals       r   Ú
test_itemszOptionsTest.test_items•   sE   € Ø×&Ñ&Ó(ˆà˜h¨°·±Ð(>Ð?ˆÜ˜Ÿ™›Ó(ˆØ×Ñ˜ 6Õ*r   c                 ó„   — | j                  «       }dd|j                  dœ}| j                  ||j                  «       «       y )Nr]   r_   )rj   rk   rn   )rl   rn   r)   Úas_dict)r   r+   ry   s      r   Útest_as_dictzOptionsTest.test_as_dictœ   s7   € Ø×&Ñ&Ó(ˆØ ¨G¯L©LÑ9ˆØ×Ñ˜ 7§?¡?Ó#4Õ5r   c                 óŽ  — t        «       }|j                  dd¬«       |j                  ddd¬«       t        j                  d«      }|j                  j
                  }| j                  dd	|h|j                  «       «       |j                  d«      }| j                  ddi|«       | j                  i |j                  d
«      «       y )Nrj   r]   r#   rk   Úb_groupr_   )Úgroupr$   r   Ú Únonexistent)	r   r'   rE   Ú	_getframeÚf_codeÚco_filenamer)   ÚgroupsÚ
group_dict)r   r+   ÚframeÚ	this_fileÚb_group_dicts        r   Útest_group_dictzOptionsTest.test_group_dict¡   s¥   € Ü“.ˆØ�‰�s AˆÔ&Ø�‰�s )°QˆÔ7ä—‘˜aÓ ˆØ—L‘L×,Ñ,ˆ	Ø×Ñ˜) R¨Ð3°W·^±^Ó5EÔFà×)Ñ)¨)Ó4ˆØ×Ñ˜#˜q˜ <Ô0à×Ñ˜˜W×/Ñ/°Ó>Õ?r   c                 óÌ  — t        «       }|j                  dd¬«       |j                  ddg«       | j                  |j                  d«       t
        j                  j                  |j                  «       dd«      5  | j                  |j                  d«       d d d «       | j                  |j                  d«       t
        j                  j                  |j                  «       dd«      5  | j                  |j                  d«       d	|_        | j                  |j                  d	«       t
        j                  j                  |j                  «       dd
«      5  | j                  |j                  d
«       d d d «       | j                  |j                  d	«       d d d «       | j                  |j                  d«       y # 1 sw Y   �Œ*xY w# 1 sw Y   ŒWxY w# 1 sw Y   Œ?xY w)Nr/   r]   r#   r%   z--foo=2r_   é   é   é   é   )	r   r'   r(   r)   r/   r   ÚpatchÚobjectÚmockabler*   s     r   Útest_mock_patchzOptionsTest.test_mock_patch¯   ss  € ä“.ˆØ�‰�u aˆÔ(Ø×"Ñ" I¨yÐ#9Ô:Ø×Ñ˜Ÿ™ aÔ(ä�Z‰Z×Ñ˜w×/Ñ/Ó1°5¸!Ó<ñ 	-Ø×Ñ˜WŸ[™[¨!Ô,÷	-à×Ñ˜Ÿ™ aÔ(ô �Z‰Z×Ñ˜w×/Ñ/Ó1°5¸!Ó<ñ 	-Ø×Ñ˜WŸ[™[¨!Ô,ØˆGŒKØ×Ñ˜WŸ[™[¨!Ô,Ü—‘×"Ñ" 7×#3Ñ#3Ó#5°u¸aÓ@ñ 1Ø× Ñ  §¡¨aÔ0÷1à×Ñ˜WŸ[™[¨!Ô,÷	-ð 	×Ñ˜Ÿ™ aÕ(÷	-ñ 	-ú÷1ð 1ú÷		-ð 	-ús1   Á<GÃ,A/GÅGÅ8$GÇGÇG	ÇGÇG#c                 óä  — t        «       }|j                  dt        ¬«       |j                  dt        ¬«       |j                  dt        ¬«       |j                  dt
        ¬«       |j                  dt        j                  ¬«       |j                  dt        j                  ¬«       |j                  dt        ¬«       |j                  d	t        d
¬«       |j                  dt        d
¬«       |S )Nr   rP   Ú
basestringr`   ÚfloatÚdatetimeÚ	timedeltaÚemailzlist-of-intT©rQ   Úmultiplezlist-of-str)	r   r'   r   r   r`   r˜   r™   rš   r
   r*   s     r   Ú_define_optionszOptionsTest._define_optionsÄ   s®   € Ü“.ˆØ�‰�u¤3ˆÔ'Ø�‰�|¬/ˆÔ:Ø�‰�u¤3ˆÔ'Ø�‰�w¤UˆÔ+Ø�‰�z¬×(9Ñ(9ˆÔ:Ø�‰�{¬×);Ñ);ˆÔ<Ø�‰�w¤UˆÔ+Ø�‰�}¬3¸ˆÔ>Ø�‰�}¬3¸ˆÔ>Øˆr   c           
      óÀ  — | j                  |j                  d«       | j                  |j                  d«       | j                  |j                  d«       | j                  |j                  d«       | j                  |j
                  t        j
                  ddddd	«      «       | j                  |j                  t        j                  d
¬«      «       | j                  |j                  j                  d«       | j                  t        |j                  t        «      «       | j                  |j                  g d¢«       | j                  |j                  g d¢«       y )NÚasdfÚqweré*   g      ø?iÝ  r�   é   r�   é   é-   )Úsecondsztornado@web.com)r]   r_   rŽ   ©rj   rk   Úc)r)   r   r—   r`   r˜   r™   rš   r›   r   rB   r   r
   Úlist_of_intÚlist_of_strr*   s     r   Ú_check_options_valuesz!OptionsTest._check_options_valuesÑ   sü   € Ø×Ñ˜Ÿ™ fÔ-Ø×Ñ˜×+Ñ+¨VÔ4Ø×Ñ˜Ÿ™ bÔ)Ø×Ñ˜Ÿ™¨Ô,Ø×Ñ˜×)Ñ)¬8×+<Ñ+<¸TÀ1ÀbÈ!ÈRÓ+PÔQØ×Ñ˜×*Ñ*¬H×,>Ñ,>ÀrÔ,JÔKØ×Ñ˜Ÿ™×,Ñ,Ð.?Ô@Ø�‰œ
 7§=¡=´%Ó8Ô9Ø×Ñ˜×,Ñ,ªiÔ8Ø×Ñ˜×,Ñ,ªoÕ>r   c                 ól   — | j                  «       }|j                  g d¢«       | j                  |«       y )N)
r%   z
--str=asdfz--basestring=qwerz--int=42z--float=1.5z--datetime=2013-04-28 05:16z--timedelta=45sz--email=tornado@web.comz--list-of-int=1,2,3z--list-of-str=a,b,c)rž   r(   r«   r*   s     r   Ú
test_typeszOptionsTest.test_typesÝ   s3   € Ø×&Ñ&Ó(ˆØ×"Ñ"òô	
ð 	×"Ñ" 7Õ+r   c                 óô   — dD ]s  }| j                  «       }|j                  t        j                  j	                  t        j                  j                  t        «      |«      «       | j                  |«       Œu y )N)zoptions_test_types.cfgzoptions_test_types_str.cfg)rž   r8   r2   r3   r4   r5   r7   r«   )r   Úconfig_file_namer+   s      r   Útest_types_with_conf_filez%OptionsTest.test_types_with_conf_fileï   sb   € ð!
ò 	0Ðð ×*Ñ*Ó,ˆGØ×%Ñ%Ü—‘—‘œRŸW™WŸ_™_¬XÓ6Ð8HÓIôð ×&Ñ& wÕ/ñ	0r   c                 óª   — t        «       }|j                  dt        d¬«       |j                  ddg«       | j	                  |j
                  g d¢«       y )Nr/   Trœ   r%   z--foo=a,b,cr§   )r   r'   r   r(   r)   r/   r*   s     r   Útest_multiple_stringz OptionsTest.test_multiple_stringú   sB   € Ü“.ˆØ�‰�u¤3°ˆÔ6Ø×"Ñ" I¨}Ð#=Ô>Ø×Ñ˜Ÿ™¢oÕ6r   c                 óª   — t        «       }|j                  dt        d¬«       |j                  ddg«       | j	                  |j
                  g d¢«       y )Nr/   Trœ   r%   z--foo=1,3,5:7)r]   rŽ   r�   r‘   é   )r   r'   r`   r(   r)   r/   r*   s     r   Útest_multiple_intzOptionsTest.test_multiple_int   sB   € Ü“.ˆØ�‰�u¤3°ˆÔ6Ø×"Ñ" I¨Ð#?Ô@Ø×Ñ˜Ÿ™¢oÕ6r   c                 óú   — t        «       }|j                  d«       | j                  t        «      5 }|j                  d«       d d d «       | j	                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nr/   zOption.*foo.*already defined)r   r'   rG   r   ÚassertRegexr   Ú	exception)r   r+   Úcms      r   Útest_error_redefinezOptionsTest.test_error_redefine  s`   € Ü“.ˆØ�‰�uÔØ×ÑœuÓ%ð 	"¨Ø�N‰N˜5Ô!÷	"à×Ñœ˜RŸ\™\Ó*Ð,JÕK÷	"ð 	"ús   ±A1Á1A:c                 óh  — g d¢}|D ]‘  \  }}| j                  | ||¬«      5  t        «       }|j                  |«       | j                  t        «      5 }|j                  |«       d d d «       | j                  t        j                  «      d«       d d d «       Œ“ y # 1 sw Y   Œ9xY w# 1 sw Y   ŒªxY w)N))úfoo-barr¼   )Úfoo_barr½   ©r¼   r½   )r½   r¼   )rj   rk   z Option.*foo.bar.*already defined)ÚsubTestr   r'   rG   r   r·   r   r¸   )r   Útestsrj   rk   r+   r¹   s         r   Útest_error_redefine_underscorez*OptionsTest.test_error_redefine_underscore  s¯   € ò
ˆð ò 	X‰DˆAˆqØ—‘˜d a¨1�Ó-ñ XÜ&›.�Ø—‘˜qÔ!Ø×&Ñ&¤uÓ-ð &°Ø—N‘N 1Ô%÷&à× Ñ ¤ R§\¡\Ó!2Ð4VÔW÷Xð Xñ	X÷&ð &ú÷Xð Xús#   ¡1B(ÁBÁ$-B(ÂB%Â!B(Â(B1	c                 ó  — dD ]}  }dD ]v  }t        «       }|j                  |«       |j                  d|g«       | j                  |j                  d«       | j                  |d   d«       | j                  |d   d«       Œx Œ y )Nr¾   )z--foo-bar=az--foo_bar=ar%   rj   r¼   r½   )r   r'   r(   r)   r½   )r   Údefined_nameÚflagr+   s       r   Útest_dash_underscore_cliz$OptionsTest.test_dash_underscore_cli  s„   € à2ò 		:ˆLØ6ò :�Ü&›.�Ø—‘˜|Ô,Ø×*Ñ*¨I°tÐ+<Ô=à× Ñ  §¡°#Ô6à× Ñ  ¨Ñ!3°SÔ9Ø× Ñ  ¨Ñ!3°SÕ9ñ:ñ		:r   c                 ó   — dD ]‰  }t        «       }|j                  |«       |j                  t        j                  j                  t        j                  j                  t        «      d«      «       | j                  |j                  d«       Œ‹ y )Nr¾   r1   rj   )
r   r'   r8   r2   r3   r4   r5   r7   r)   r½   )r   rÃ   r+   s      r   Útest_dash_underscore_filez%OptionsTest.test_dash_underscore_file+  sj   € ð 3ò 	3ˆLÜ"“nˆGØ�N‰N˜<Ô(Ø×%Ñ%Ü—‘—‘œRŸW™WŸ_™_¬XÓ6Ð8JÓKôð ×Ñ˜WŸ_™_¨cÕ2ñ	3r   c                 ó~  — t        «       }|j                  dd¬«       |j                  dd¬«       g d¢}| j                  t        |«      |«       | j                  t        d„ |j	                  «       D «       «      |«       | j                  t        |j                  «       j                  «       «      |«       | j                  t        |j                  d«      «      ddg«       t        «       }|j                  |«       | j                  d|j                  «       «       | j                  d|j                  «       «       y )	Nú	with-dashÚg)r�   Úwith_underscore)rn   rÉ   rË   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r   )Ú.0ÚkÚvs      r   ú	<genexpr>zAOptionsTest.test_dash_underscore_introspection.<locals>.<genexpr>=  s   è ø€ Ò@¡f q¨!¤Ñ@ùs   ‚z--with-dashz--with-underscore)r   r'   r)   rw   rx   r}   Úkeysrˆ   r   Ú
print_helprJ   rI   )r   r+   Úall_optionsÚbufs       r   Ú"test_dash_underscore_introspectionz.OptionsTest.test_dash_underscore_introspection6  sò   € ä“.ˆØ�‰�{¨#ˆÔ.Ø�‰Ð(°ˆÔ4Ú>ˆØ×Ñœ ›¨+Ô6Ø×ÑœÑ@°·±³Ô@Ó@À+ÔNØ×Ñœ §¡Ó 1× 6Ñ 6Ó 8Ó9¸;ÔGà×ÑÜ�7×%Ñ% cÓ*Ó+¨kÐ;LÐ-Mô	
ô
 ‹jˆØ×Ñ˜3ÔØ�‰�m S§\¡\£^Ô4Ø�‰Ð)¨3¯<©<«>Õ:r   N)r   r   r   r,   r:   rC   rM   rZ   ra   rd   rh   rl   rq   rs   ru   r{   r~   rŒ   r•   rž   r«   r­   r°   r²   rµ   rº   rÁ   rÅ   rÇ   rÕ   r   r   r   r   r      s�   „ ò,ò7ò%ò.
'ò%ò.)òò&òòAò
*ò,ò+ò6ò
@ò)ò*ò
?ò,ò$	0ò7ò7òLòXò":ò	3ó;r   r   )r™   Úior   r2   rE   Úunittestr   Útornado.optionsr   r   Útornado.utilr   ÚtypingÚTYPE_CHECKINGr   r
   ÚTestCaser   r   r   r   ú<module>rÝ      sJ   ðÛ Ý Û 	Û 
Ý Û ç /Ý (ã à	×ÒÝ÷	ñ 	ôk;�(×#Ñ#õ k;r   