§
     ’j	  ã                   ó"  — d Z ddlZddlmc mZ ddlmZm	Z	m
Z
 ddlZddlmZmZ ej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej        j        d„ ¦   «         Zej        j        d	„ ¦   «         ZdS )
z%Tests for CloudflaredManager service.é    N)Ú	AsyncMockÚ	MagicMockÚpatch)ÚCloudflaredManagerÚget_cloudflared_managerc               ƒ   óÖ  K  — t          ¦   «         } t          ¦   «         }| |u }|sÂt          j        d|fd| |f¦  «        dt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d }d S )N©Úis)z%(py0)s is %(py2)sÚmgr1Úmgr2)Úpy0Úpy2zassert %(py4)sÚpy4)	r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)r   r   Ú@py_assert1Ú@py_format3Ú@py_format5s        ú4C:\Projects\DSCons\tests\test_cloudflared_manager.pyÚ"test_cloudflared_manager_singletonr   
   s  è è € å"Ñ$Ô$€DÝ"Ñ$Ô$€DØ�4ˆ<ÐÐÐÕÔÐÐÐÐˆ4�4ÐÑÔÐÕÔÑÔÐÐÕÔˆ4ÑÔÐÕÔˆ4ÑÔÐÐÐÕÔÑÔÐÐÕÔ�4ÑÔÐÕÔ�4ÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐó    c               ƒ   ó6  K  — t          ¦   «         } t          dt          ¬¦  «        5 }t          ¦   «         }d|_        ||_        |                      ¦   «         ƒ d {V —†}d}||u }|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }d	d
|iz  }t          t          j        |¦  «        ¦  «        ‚d x}}d d d ¦  «         d S # 1 swxY w Y   d S )Núhttpx.AsyncClient.get©Únew_callableéÈ   Tr	   ©z%(py0)s is %(py3)sÚ
is_healthy©r   Úpy3úassert %(py5)sÚpy5)r   r   r   r   Ústatus_codeÚreturn_valueÚis_tunnel_healthyr   r   r   r   r   r   r   r   )ÚmanagerÚmock_getÚmock_responser$   Ú@py_assert2r   Ú@py_format4Ú@py_format6s           r   Ú-test_cloudflared_manager_health_check_successr2      s„  è è € å Ñ"Ô"€GÝ	Ð&µYÐ	?Ñ	?Ô	?ð "À8Ý!™œˆØ$'ˆÔ!Ø -ˆÔà"×4Ò4Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6ˆ
Ø!Ð!ˆz˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆz˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   §CDÄDÄDc            	   ƒ   óz  K  — t          ¦   «         } t          dt          d¦  «        ¬¦  «        5  t          j        | dd¬¦  «        5  d | _        |                      ¦   «         ƒ d {V —†}d}||u }|s—t          j        d|fd||f¦  «        d	t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}}d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zConnection refused©Úside_effectÚ_is_system_process_runningF©r*   r	   r#   r$   r%   r'   r(   )r   r   Ú	ExceptionÚobjectÚ_processr+   r   r   r   r   r   r   r   r   )r,   r$   r/   r   r0   r1   s         r   Ú:test_cloudflared_manager_health_check_failure_and_fallbackr;      sî  è è € å Ñ"Ô"€GåÐ%µ9Ð=QÑ3RÔ3RÐSÑSÔSð#ð #åŒ�WÐ:ÈÐOÑOÔOð#ð #ð
  ˆÔØ"×4Ò4Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6ˆ
Ø"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s6   ¯D0ÁCDÄD0ÄD	ÄD0ÄD	Ä D0Ä0D4Ä7D4c               ƒ   ób  K  — t          ¦   «         } t          j        | dt          ¬¦  «        5 }t          j        | dt          ¬¦  «        5 }d|_        |                      ¦   «         ƒ d {V —† |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr+   r    Ústart_tunnelT)r   r   r9   r   r*   Úcheck_and_recoverÚassert_not_called)r,   Úmock_healthÚ
mock_starts      r   Ú7test_cloudflared_manager_check_and_recover_when_healthyrB   *   s@  è è € å Ñ"Ô"€GåŒØÐ(µyð	
ñ 	
ô 	
ð'ð ÝŒ�W˜n½9ÐEÑEÔEð	'ð JTà#'ˆÔ Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø×$Ò$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's5   ­B$Á
6BÂ B$ÂB	ÂB$ÂB	ÂB$Â$B(Â+B(c               ƒ   óº  K  — t          ¦   «         } t          j        | dddg¬¦  «        5  t          j        | dd¬¦  «        5  t          j        | dt          ¬¦  «        5 }d|_        |                      ¦   «         ƒ d {V —† |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Nr+   FTr4   r6   r7   r=   r    )r   r   r9   r   r*   r>   Úassert_called_once)r,   rA   s     r   Ú9test_cloudflared_manager_check_and_recover_when_unhealthyrE   8   s¬  è è € å Ñ"Ô"€GåŒ�WÐ1ÀÀt¸}ÐMÑMÔMð(ð (åŒ�WÐ:ÈÐOÑOÔOð(ð (õ 	Œ�W˜n½9ÐEÑEÔEð(ð JTà"&ˆ
ÔØ×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø×%Ò%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (sY   ªCÁB8Á6B!ÂB8Â!B%Â%B8Â(B%Â)B8Â,CÂ8B<	Â<CÂ?B<	Ã CÃCÃC)Ú__doc__Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   Úunittest.mockr   r   r   ÚpytestÚ8app.modules.integrations.application.cloudflared_managerr   r   ÚmarkÚanyior   r2   r;   rB   rE   © r   r   ú<module>rQ      s  ðØ +Ð +à  € € € € € € € € € € € € Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€à pÐ pÐ pÐ pÐ pÐ pÐ pÐ pð „Ôðð ñ Ôðð „Ôð"ð "ñ Ôð"ð „Ôð	#ð 	#ñ Ôð	#ð „Ôð
'ð 
'ñ Ôð
'ð „Ôð	(ð 	(ñ Ôð	(ð 	(ð 	(r   