§
    Štj;f  ã                   óª   — d dl Z d dlZd dlZd dlmZmZ d dlmZmZ d dl	m
Z
 ddlmZ  G d„ dej        ¦  «        Zed	k    r ej        ¦   «          dS dS )
é    N)ÚMockÚcall)ÚclientÚconfig)ÚApiExceptioné   )ÚWatchc                   óœ   — 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ed„ ¦   «         Zd„ ZdS )Ú
WatchTestsc                 ó   — d| _         d S )Nr   ©Ú	callcount)Úselfs    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/watch/watch_test.pyÚsetUpzWatchTests.setUp   s   € àˆŒˆˆó    c                 óª  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          g d¢¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        t          ¦   «         }d}|                     |j        ¦  «        D ]­}|                      d|d         ¦  «         |                      d|z  |d         j        j	        ¦  «         |                      d	|z  |d         j        j
        ¦  «         |                      d	|z  |j
        ¦  «         |dz  }|d
k    r|                     ¦   «          Œ®|                      d
|¦  «         |j                             dd¬¦  «         |j                             d d¬¦  «         |j                             ¦   «          |j                             ¦   «          d S )N)ún{"type": "ADDED", "object": {"metadata": {"name": "test1","resourceVersion": "1"}, "spec": {}, "status": {}}}
úc{"type": "ADDED", "object": {"metadata": {"name": "test2","resourceVersion": "2"}, "spec": {}, "staúytus": {}}}
{"type": "ADDED", "object": {"metadata": {"name": "test3","resourceVersion": "3"}, "spec": {}, "status": {}}}
zshould_not_happened
©Úreturn_valueú:rtype: V1NamespaceListr   ÚADDEDÚtypeútest%dÚobjectú%dé   FT©Ú_preload_contentÚwatch©ÚamtÚdecode_content)r   ÚcloseÚrelease_connÚstreamÚget_namespacesÚ__doc__r	   ÚassertEqualÚmetadataÚnameÚresource_versionÚstopÚassert_called_once_withÚassert_called_once©r   Ú	fake_respÚfake_apiÚwÚcountÚes         r   Útest_watch_with_decodez!WatchTests.test_watch_with_decode   sÚ  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝð)ð )ð )ð	*ñ 	*ô 	*ˆ	Ôõ ‘6”6ˆÝ"&°IÐ">Ñ">Ô">ˆÔØ*CˆÔÔ'å‰GŒGˆØˆØ—’˜(Ô1Ñ2Ô2ð 	ð 	ˆAØ×Ò˜W a¨¤iÑ0Ô0Ð0à×Ò˜X¨Ñ-¨q°¬{Ô/CÔ/HÑIÔIÐIà×ÒØ�u‘˜a œkÔ2ÔCñEô Eð Eà×Ò˜T E™\¨1Ô+=Ñ>Ô>Ð>Ø�Q‰JˆEð ˜ŠzˆzØ—’‘”�øð 	×Ò˜˜EÑ"Ô"Ð"àÔ×7Ò7Ø"¨$ð 	8ñ 	0ô 	0ð 	0àÔ×0Ò0Ø Uð 	1ñ 	,ô 	,ð 	,àŒ×*Ò*Ñ,Ô,Ð,ØÔ×1Ò1Ñ3Ô3Ð3Ð3Ð3r   c                 óæ  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          g d¢¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        t          ¦   «         }d}|                     |j        d¬¦  «        D ]3}|€Œ|dz  }|                      d|z  |d         j        j	        ¦  «         Œ4|                      d	|¦  «         d S )
N)	ú
z({"type": "ADDED", "object": {"metadata":z={"name": "test1","resourceVersion": "1"}}}
{"type": "ADDED", zC"object": {"metadata": {"name": "test2", "resourceVersion": "2"}}}
r:   Ú zU{"type": "ADDED", "object": {"metadata": {"name": "test3", "resourceVersion": "3"}}}
z


r:   r   r   r   r   ©Útimeout_secondsr   r   é   )
r   r&   r'   r(   r)   r*   r	   r+   r,   r-   r2   s         r   Ú%test_watch_with_interspersed_newlinesz0WatchTests.test_watch_with_interspersed_newlinesL   sú   € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝð
ð 
ð 
ðñ ô ˆ	Ôõ ‘6”6ˆÝ"&°IÐ">Ñ">Ô">ˆÔØ*CˆÔÔ'å‰GŒGˆØˆð
 —’˜(Ô1À1�ÑEÔEð 	Jð 	JˆAàˆyØØ�Q‰JˆEØ×Ò˜X¨Ñ-¨q°¬{Ô/CÔ/HÑIÔIÐIÐIØ×Ò˜˜EÑ"Ô"Ð"Ð"Ð"r   c                 óú  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          g d¢¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        t          ¦   «         }d}|                     |j        d¬¦  «        D ]½}|dz  }|                      d|d         ¦  «         |                      d	|z  |d
         j        j	        ¦  «         |                      d|z  |d
         j
        d         ¦  «         |                      d|z  |d
         j        j        ¦  «         |                      d|z  |j        ¦  «         Œ¾|                      d|¦  «         d S )N)ui   {"type":"MODIFIED","object":{"data":{"utf-8":"Â© 1"},"metadata":{"name":"test1","resourceVersion":"1"}}}
s˜   {"type":"MODIFIED","object":{"data":{"utf-8":"Â© 2"},"metadata":{"name":"test2","resourceVersion":"2"}}}
{"type":"MODIFIED","object":{"data":{"utf-8":"Âs   © 3"},"metadata":{"nz"ame":"test3","resourceVersion":"3"ú}}}ó   
r   ú:rtype: V1ConfigMapListr   r   r<   ÚMODIFIEDr   r   r   u   Â© %dúutf-8r   r>   )r   r&   r'   r(   Úget_configmapsr*   r	   r+   r,   r-   Údatar.   ©r   r3   r4   r5   r6   Úevents         r   Útest_watch_with_multibyte_utf8z)WatchTests.test_watch_with_multibyte_utf8o   s{  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝðð ð ðñ ô ˆ	Ôõ ‘6”6ˆÝ"&°IÐ">Ñ">Ô">ˆÔØ*CˆÔÔ'å‰GŒGˆØˆð
 —X’X˜hÔ5Àq�XÑIÔIð 	?ð 	?ˆEØ�Q‰JˆEØ×Ò˜Z¨¨v¬Ñ7Ô7Ð7Ø×Ò˜X¨Ñ-¨u°X¬Ô/GÔ/LÑMÔMÐMØ×Ò˜W u™_¨e°H¬oÔ.BÀ7Ô.KÑLÔLÐLØ×ÒØ�u‘˜e HœoÔ6ÔGñIô Ið Ià×Ò˜T E™\¨1Ô+=Ñ>Ô>Ð>Ð>Ø×Ò˜˜EÑ"Ô"Ð"Ð"Ð"r   c                 óî  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          g d¢¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        t          ¦   «         }d}|                     |j        d¬¦  «        D ]·}|dz  }|                      d|d         ¦  «         |                      d	|z  |d
         j        j	        ¦  «         |                      d|z  |d
         j
        d         ¦  «         |                      d                     dd|z  ¦  «        |z  |d
         j
        d         ¦  «         Œ¸|                      d|¦  «         d S )N)se   {"type":"MODIFIED","object":{"data":{"utf-8":"ðŸ˜„ 1","invalid":"€ 1"},"metadata":{"name":"test1"}}}
sf   {"type":"MODIFIED","object":{"data":{"utf-8":"ðŸ˜„ 2","invalid":"À¯ 2"},"metadata":{"name":"test2"}}}
s1   {"type":"MODIFIED","object":{"data":{"utf-8":"ðŸ˜s   „ r   s   3","invalid":"à€s   ¯ z3"},"metadata":{"nzame":"test3"rA   rB   r   rC   r   r   r<   rD   r   r   r   u   ðŸ˜„ %drE   u   ï¿½ %du   ï¿½Úinvalidr>   )r   r&   r'   r(   rF   r*   r	   r+   r,   r-   rG   ÚreplacerH   s         r   Útest_watch_with_invalid_utf8z'WatchTests.test_watch_with_invalid_utf8–   s~  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝðð ð ð	ñ ô ˆ	Ôõ, ‘6”6ˆÝ"&°IÐ">Ñ">Ô">ˆÔØ*CˆÔÔ'å‰GŒGˆØˆð
 —X’X˜hÔ5Àq�XÑIÔIð 	Eð 	EˆEØ�Q‰JˆEØ×Ò˜Z¨¨v¬Ñ7Ô7Ð7Ø×Ò˜X¨Ñ-¨u°X¬Ô/GÔ/LÑMÔMÐMØ×Ò˜Y¨Ñ.°°h´Ô0DÀWÔ0MÑNÔNÐNà×Ò˜X×-Ò-¨e°U¸5±[ÑAÔAØ"ñ#Ø$)¨(¤OÔ$8¸Ô$CñEô Eð Eð Eà×Ò˜˜EÑ"Ô"Ð"Ð"Ð"r   c                 ó’  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          ddg¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        t          ¦   «         }d}|                     |j        ¦  «        D ]7}|                      d|¦  «         |dz  }|dk    r|                     ¦   «          Œ8|j         	                    dd	¬
¦  «         |j         	                    d d¬¦  «         |j         
                    ¦   «          |j         
                    ¦   «          d S )Nzlog_line_1
zlog_line_2
r   z-:param follow:
:type follow: bool
:rtype: strr   Ú
log_line_1é   FT)r!   Úfollowr#   )r   r&   r'   r(   Úread_namespaced_pod_logr*   r	   r+   r/   r0   r1   r2   s         r   Útest_watch_for_followz WatchTests.test_watch_for_followÄ   sP  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝàØð ð!ñ !ô !ˆ	Ôõ
 ‘6”6ˆÝ+/¸YÐ+GÑ+GÔ+GˆÔ(à=ð 	Ô(Ô0õ ‰GŒGˆØˆØ—’˜(Ô:Ñ;Ô;ð 	ð 	ˆAØ×Ò˜\¨1Ñ-Ô-Ð-Ø�Q‰JˆEð ˜ŠzˆzØ—’‘”�øàÔ(×@Ò@Ø"¨4ð 	Añ 	1ô 	1ð 	1àÔ×0Ò0Ø Uð 	1ñ 	,ô 	,ð 	,àŒ×*Ò*Ñ,Ô,Ð,ØÔ×1Ò1Ñ3Ô3Ð3Ð3Ð3r   c                 óZ  ‡ ‡
— t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        g d¢Š
ˆ ˆ
fd„}t          |¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        t          ¦   «         }g }d}|                     t          ddd	¬
¦  «        ¦  «         |                     t          ddd	¬
¦  «        ¦  «         t          |¦  «        D ]'}|                     t          ddd¬
¦  «        ¦  «         Œ(t          |                     |j        d	¬¦  «        ¦  «        D ]/\  }}	|t          ‰
¦  «        |z  k    r|                     ¦   «          Œ0|j                             |¦  «         ‰                      |j        j        |¦  «         d S )N)r   r   r   c                  óB   •— ‰xj         dz  c_         ‰j         dk    rg S ‰S )Nr   r   )ÚargsÚkwargsr   Úvaluess     €€r   Ú
get_valuesz>WatchTests.test_watch_resource_version_set.<locals>.get_valuesø   s*   ø€ ØˆNŒN˜aÑˆNŒNØŒ~ Ò"Ð"Ø�	à�r   ©Úside_effectr   r   rQ   FTÚ5)r!   r"   r.   Ú3©r.   )r   r&   r'   r(   r)   r*   r	   Úappendr   ÚrangeÚ	enumerateÚlenr/   Úassert_has_callsr+   Ú
mock_calls)r   r3   rZ   r4   r5   ÚcallsÚ
iterationsÚiÚcr7   rY   s   `         @r   Útest_watch_resource_version_setz*WatchTests.test_watch_resource_version_setã   sô  øø€ õ ‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	Ôð
ð 
ð 
ˆð	ð 	ð 	ð 	ð 	ð 	õ  Ø"ð$ñ $ô $ˆ	Ôõ ‘6”6ˆÝ"&°IÐ">Ñ">Ô">ˆÔØ*CˆÔÔ'å‰GŒGˆð
 ˆàˆ
ð 	�Š•T¨5¸Ø+.ð0ñ 0ô 0ñ 	1ô 	1ð 	1à�Š•T¨5¸Ø+.ð0ñ 0ô 0ñ 	1ô 	1ð 	1å�zÑ"Ô"ð 	5ð 	5ˆAð �LŠL�¨u¸DØ/2ð4ñ 4ô 4ñ 5ô 5ð 5ð 5õ ˜aŸhšh xÔ'>Ø8;ð 'ñ =ô =ñ >ô >ð 	ð 	‰DˆAˆqà•C˜‘K”K *Ñ,Ò,Ð,Ø—’‘”�øð 	Ô×0Ò0°Ñ7Ô7Ð7à×Ò˜Ô0Ô;¸UÑCÔCÐCÐCÐCr   c                 ó°  — t          t          ¦  «        }dD �]=}t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          dgdz  ¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        d}|                     |j        ¦  «        D ]!}|dz  }|dk    r|                     ¦   «          Œ"|  	                    |d¦  «         |j         
                    dd	¬
¦  «         |j         
                    d d¬¦  «         |j                             ¦   «          |j                             ¦   «          �Œ?d S )N)ÚfirstÚsecondú{"type": "ADDED", "object": 1}
r   r   r   r   r>   FTr    r#   )r	   Úfloatr   r&   r'   r(   r)   r*   r/   r+   r0   r1   )r   r5   Ústepr3   r4   r6   r7   s          r   Útest_watch_stream_twicez"WatchTests.test_watch_stream_twice(  sc  € Ý•%‰LŒLˆØ'ð 	8ñ 	8ˆDÝ™œˆIÝ"™fœfˆIŒOÝ%)¡V¤VˆIÔ"Ý#Ø@ÐAÀAÑEð Gñ  Gô  GˆIÔõ ‘v”vˆHÝ&*¸	Ð&BÑ&BÔ&BˆHÔ#Ø.GˆHÔ#Ô+àˆEØ—X’X˜hÔ5Ñ6Ô6ð ð �Ø˜‘
�Ø˜A’:�:Ø—F’F‘H”H�Høà×Ò˜U AÑ&Ô&Ð&ØÔ#×;Ò;Ø!&¨dð <ñ 4ô 4ð 4àÔ×4Ò4Ø¨ð 5ñ 0ô 0ð 0àŒO×.Ò.Ñ0Ô0Ð0ØÔ"×5Ò5Ñ7Ô7Ð7Ñ7ð/	8ð 	8r   c                 ó<  — t          t          ¦  «        }t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          dg¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        d|j        _        d}|                     |j        d¬¦  «        D ]}|dz   }Œ|                      |d¦  «         |                     |j        ¦  «        D ]!}|dz   }|dk    r| 	                    ¦   «          Œ"|                      |d¦  «         |                      |j        j
        d¦  «         |                      |j        j
        d¦  «         |                      |j        j
        d¦  «         |                      |j        j
        d¦  «         d S )Nrn   r   r   r   r   r<   rQ   )r	   ro   r   r&   r'   r(   r)   r*   r+   r/   Ú
call_count)r   r5   r3   r4   r6   r7   s         r   Útest_watch_stream_loopz!WatchTests.test_watch_stream_loopC  sˆ  € Ý•%‰LŒLˆå‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝØ<Ð=ð?ñ ?ô ?ˆ	Ôõ ‘6”6ˆÝ"&°IÐ">Ñ">Ô">ˆÔØ*CˆÔÔ'àˆð —’˜(Ô1À1�ÑEÔEð 	ð 	ˆAØ˜A‘IˆEˆEØ×Ò˜ Ñ"Ô"Ð"ð —’˜(Ô1Ñ2Ô2ð 	ð 	ˆAØ˜A‘IˆEØ˜ŠzˆzØ—’‘”�øà×Ò˜ Ñ"Ô"Ð"Ø×Ò˜Ô0Ô;¸QÑ?Ô?Ð?Ø×Ò˜Ô)Ô4°aÑ8Ô8Ð8Ø×Ò˜œÔ3°QÑ7Ô7Ð7Ø×Ò˜Ô/Ô:¸AÑ>Ô>Ð>Ð>Ð>r   c                 óR  — t          ¦   «         }|                     dd¦  «        }|                      d|d         ¦  «         |                      d|d         ¦  «         |                      t	          |d         t
          ¦  «        ¦  «         |                      d|d         ¦  «         d S )	Nz{"type": "ADDED", "object": 1}ro   r   r   g      ð?r   r   Ú
raw_object)r	   Úunmarshal_eventr+   Ú
assertTrueÚ
isinstancero   ©r   r5   rI   s      r   Ú test_unmarshal_with_float_objectz+WatchTests.test_unmarshal_with_float_objectc  s–   € Ý‰GŒGˆØ×!Ò!Ð"BÀGÑLÔLˆØ×Ò˜ %¨¤-Ñ0Ô0Ð0Ø×Ò˜˜e HœoÑ.Ô.Ð.Ø�Š�
 5¨¤?µEÑ:Ô:Ñ;Ô;Ð;Ø×Ò˜˜E ,Ô/Ñ0Ô0Ð0Ð0Ð0r   c                 óú   — t          ¦   «         }|                     dd ¦  «        }|                      d|d         ¦  «         |                      dg|d         ¦  «         |                      dg|d         ¦  «         d S )Nz&{"type": "ADDED", "object": ["test1"]}r   r   Útest1r   rv   )r	   rw   r+   rz   s      r   Ú"test_unmarshal_with_no_return_typez-WatchTests.test_unmarshal_with_no_return_typek  s   € Ý‰GŒGˆØ×!Ò!Ð"JØ"&ñ(ô (ˆà×Ò˜ %¨¤-Ñ0Ô0Ð0Ø×Ò˜'˜ E¨(¤OÑ4Ô4Ð4Ø×Ò˜'˜ E¨,Ô$7Ñ8Ô8Ð8Ð8Ð8r   c                 óh  — t          ¦   «         }|                     dd¦  «        }|                      d|d         ¦  «         |                      t	          |d         t
          ¦  «        ¦  «         |                      d|d         d         d         ¦  «         |                      d|j        ¦  «         d S )Nz~{"type": "ADDED", "object": {"apiVersion":"test.com/v1beta1","kind":"foo","metadata":{"name": "bar", "resourceVersion": "1"}}}r   r   r   Ú1r,   ÚresourceVersion)r	   rw   r+   rx   ry   Údictr.   rz   s      r   Ú!test_unmarshal_with_custom_objectz,WatchTests.test_unmarshal_with_custom_objects  s­   € Ý‰GŒGˆØ×!Ò!ð #Nð #+ñ,ô ,ˆð 	×Ò˜ %¨¤-Ñ0Ô0Ð0ð 	�Š�
 5¨¤?µDÑ9Ô9Ñ:Ô:Ð:Ø×Ò˜˜e Hœo¨jÔ9Ð:KÔLÑMÔMÐMØ×Ò˜˜aÔ0Ñ1Ô1Ð1Ð1Ð1r   c                 ó¼   — t          ¦   «         }|                     dd¦  «        }|                      d|d         ¦  «         |                      d|j        ¦  «         d S )Nz±{"type":"BOOKMARK","object":{"kind":"Job","apiVersion":"batch/v1","metadata":{"resourceVersion":"1"},"spec":{"template":{"metadata":{},"spec":{"containers":null}}},"status":{}}}ÚV1JobÚBOOKMARKr   r€   ©r	   rw   r+   r.   rz   s      r   Útest_unmarshal_with_bookmarkz'WatchTests.test_unmarshal_with_bookmark€  sf   € Ý‰GŒGˆØ×!Ò!ðGð ñ	ô ˆð
 	×Ò˜ U¨6¤]Ñ3Ô3Ð3Ø×Ò˜˜aÔ0Ñ1Ô1Ð1Ð1Ð1r   c                 ó¼   — t          ¦   «         }|                     dd¦  «        }|                      d|d         ¦  «         |                      d |j        ¦  «         d S )Nz7{"type":"BOOKMARK","object":{"metadata": "not-a-dict"}}r…   r†   r   r‡   rz   s      r   Ú1test_unmarshal_with_bookmark_metadata_not_in_dictz<WatchTests.test_unmarshal_with_bookmark_metadata_not_in_dictŠ  sa   € Ý‰GŒGˆØ×!Ò!ØEØñô ˆð 	×Ò˜ U¨6¤]Ñ3Ô3Ð3Ø×Ò˜˜qÔ1Ñ2Ô2Ð2Ð2Ð2r   c                 ó¼   — t          ¦   «         }|                     dd¦  «        }|                      d|d         ¦  «         |                      d |j        ¦  «         d S )Nz:{"type":"BOOKMARK","object":{"metadata": {"name": "foo"}}}r…   r†   r   r‡   rz   s      r   Ú>test_unmarshal_with_bookmark_metadata_without_resource_versionzIWatchTests.test_unmarshal_with_bookmark_metadata_without_resource_version’  sa   € Ý‰GŒGˆØ×!Ò!ØHØñô ˆð 	×Ò˜ U¨6¤]Ñ3Ô3Ð3Ø×Ò˜˜qÔ1Ñ2Ô2Ð2Ð2Ð2r   c                 ór  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          t          d¦  «        ¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        t          ¦   «         }	 |                     |j        ¦  «        D ]}|                      | d¦  «         Œn# t          $ r Y nw xY w|j                             dd¬¦  «         |j                             d d¬¦  «         |j         	                    ¦   «          |j         	                    ¦   «          d S )	NÚexpectedr[   r   zShould fail on exception.FTr    r#   )
r   r&   r'   ÚKeyErrorr(   Ú	get_thingr	   Úfailr0   r1   ©r   r3   r4   r5   Ú_s        r   Útest_watch_with_exceptionz$WatchTests.test_watch_with_exceptionš  s=  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝ­H°ZÑ,@Ô,@ÐAÑAÔAˆ	Ôå‘6”6ˆÝ!¨yÐ9Ñ9Ô9ˆÔå‰GŒGˆð	Ø—X’X˜hÔ0Ñ1Ô1ð =ð =�Ø—	’	˜$Ð ;Ñ<Ô<Ð<Ð<ð=øåð 	ð 	ð 	ØˆDð	øøøð 	Ô×2Ò2Ø"¨$ð 	3ñ 	0ô 	0ð 	0àÔ×0Ò0Ø Uð 	1ñ 	,ô 	,ð 	,àŒ×*Ò*Ñ,Ô,Ð,ØÔ×1Ò1Ñ3Ô3Ð3Ð3Ð3s   Â	3B= Â=
C
Ã	C
c                 ó"  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          dg¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        t          ¦   «         }t          |                     |j        ¦  «        ¦  «        rJ ‚|j                             dd¬¦  «         |j                             d d¬¦  «         |j                             ¦   «          |j                             ¦   «          d S )NúY{"type": "ERROR", "object": {"code": 410, "reason": "Gone", "message": "error message"}}
r   FTr    r#   )	r   r&   r'   r(   r�   r	   Úlistr0   r1   )r   r3   r4   r5   s       r   Útest_watch_with_error_eventz&WatchTests.test_watch_with_error_event²  s  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝðCðDðEñ Eô Eˆ	Ôõ
 ‘6”6ˆÝ!¨yÐ9Ñ9Ô9ˆÔå‰GŒGˆõ ˜Ÿš Ô!3Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5àÔ×2Ò2Ø"¨$ð 	3ñ 	0ô 	0ð 	0àÔ×0Ò0Ø Uð 	1ñ 	,ô 	,ð 	,àŒ×*Ò*Ñ,Ô,Ð,ØÔ×1Ò1Ñ3Ô3Ð3Ð3Ð3r   c                 óœ  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          dg¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        t          ¦   «         }	 |                     |j        d¬¦  «        D ]}|                      | d¦  «         Œn# t          j        j	        $ r Y nw xY w|j         
                    t          ddd¬¦  «        gd	z  ¦  «         |j         
                    t          d d¬
¦  «        gd	z  ¦  «         |j        j        d	k    sJ ‚|j        j        d	k    sJ ‚d S )Nr–   r   r   r_   úShould fail with ApiException.FT)r.   r!   r"   rQ   r#   )r   r&   r'   r(   r�   r	   r‘   r   Úrestr   rd   r   rs   r’   s        r   Ú!test_watch_retries_on_error_eventz,WatchTests.test_watch_retries_on_error_eventÊ  s{  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝðCðDðEñ Eô Eˆ	Ôõ
 ‘6”6ˆÝ!¨yÐ9Ñ9Ô9ˆÔå‰GŒGˆð	Ø—X’X˜hÔ0À1�XÑEÔEð Bð B�Ø—	’	˜$Ð @ÑAÔAÐAÐAðBøåŒ{Ô'ð 	ð 	ð 	ØˆDð	øøøð 	Ô×+Ò+Ý 1°uÀDÐIÑIÔIÐJÈQÑNñ	Pô 	Pð 	PàÔ×)Ò)Ý�d¨5Ð1Ñ1Ô1Ð2°QÑ6ñ	8ô 	8ð 	8àŒÔ)¨QÒ.Ð.Ð.Ð.ØÔ%Ô0°AÒ5Ð5Ð5Ð5Ð5Ð5ó   Á=5B3 Â3C
Ã	C
c                 ót  — t          ¦   «         }t          ¦   «         |_        t          ¦   «         |_        t          dg¬¦  «        |_        t          ¦   «         }t          |¬¦  «        |_        t          ¦   «         }	 |                     |j        d¬¦  «        D ]}|                      | d¦  «         Œn# t          j        j	        $ r Y nw xY w|j         
                    ddd¬¦  «         |j         
                    d d¬	¦  «         |j                             ¦   «          |j                             ¦   «          d S )
Nr–   r   é
   r<   rš   FT)r!   r"   r=   r#   )r   r&   r'   r(   r�   r	   r‘   r   r›   r   r0   r1   r’   s        r   Ú-test_watch_with_error_event_and_timeout_paramz8WatchTests.test_watch_with_error_event_and_timeout_paramå  s[  € Ý‘F”Fˆ	Ý™&œ&ˆ	ŒÝ!%¡¤ˆ	ÔÝðCðDðEñ Eô Eˆ	Ôõ
 ‘6”6ˆÝ!¨yÐ9Ñ9Ô9ˆÔå‰GŒGˆð	Ø—X’X˜hÔ0À"�XÑEÔEð Bð B�Ø—	’	˜$Ð @ÑAÔAÐAÐAðBøåŒ{Ô'ð 	ð 	ð 	ØˆDð	øøøð 	Ô×2Ò2Ø"¨$Àð 	3ñ 	Dô 	Dð 	DàÔ×0Ò0Ø Uð 	1ñ 	,ô 	,ð 	,àŒ×*Ò*Ñ,Ô,Ð,ØÔ×1Ò1Ñ3Ô3Ð3Ð3Ð3r�   c                 ó:   — t          ¦   «         | _        d| _        d S )NÚdefault)r   ÚapiÚ	namespace)Úclss    r   Ú
setUpClasszWatchTests.setUpClassÿ  s   € å‘&”&ˆŒØ!ˆŒˆˆr   c                 ó–  — d}	 t          ¦   «         | j        _        t          ¦   «         | j        _        t          ¦   «         | j        _        t          ¦   «         | j        _        d | j        j        _        t          ¦   «         }d|j        _        || j        j        _        t          dg¦  «        | j        j        _        d}t          j
        ¦   «         }t          j
        ¦   «         |z
  |k     r`| j                             || j        ¬¦  «        }|j        j        dk    rnCt          j        d¦  «         t          j
        ¦   «         |z
  |k     °`|                      d¦  «         t          ¦   «         }g }t          g d¢¬	¦  «        |_        |                     | j        j        || j        d
¬¦  «        D ]&}|                     |¦  «         t#          |¦  «         Œ't#          d|› �¦  «         g d¢}	|                      ||	d¦  «         n/# t&          $ r"}
|                      d|
› �¦  «         Y d }
~
nd }
~
ww xY w| j                             || j        ¬¦  «         | j        j                             || j        ¬¦  «         d S # | j                             || j        ¬¦  «         | j        j                             || j        ¬¦  «         w xY w)Nzdemo-bugÚRunningzHello from Docker
é<   )r-   r¤   rQ   z0Pod did not reach 'Running' state within timeout)zHello from Dockerr;   r;   z

zAnother log liner;   r:   z	Final logr   T)r-   r¤   rR   zCaptured logs: z(Captured logs do not match expected logszKubernetes API exception: )r   r£   Úcreate_namespaced_podÚread_namespaced_podÚdelete_namespaced_podrS   r   ÚstatusÚphaseÚiterÚtimer¤   Úsleepr‘   r	   r(   r`   Úprintr+   r   r0   )r   Úpod_nameÚmock_podÚtimeoutÚ
start_timeÚpodr5   Ú
log_outputrI   Úexpected_logr7   s              r   Útest_pod_log_empty_linesz#WatchTests.test_pod_log_empty_lines  sÉ  € ØˆðD	lÝ-1©V¬VˆDŒHÔ*Ý+/©6¬6ˆDŒHÔ(Ý-1©V¬VˆDŒHÔ*Ý/3©v¬vˆDŒHÔ,ð ;?ˆDŒHÔ*Ô7õ ‘v”vˆHØ$-ˆHŒOÔ!Ø8@ˆDŒHÔ(Ô5õ =AÐBWÐAXÑ<YÔ<YˆDŒHÔ,Ô9ð ˆGÝœ™œˆJÝ”)‘+”+ 
Ñ*¨WÒ4Ð4Ø”h×2Ò2¸ÈDÌNÐ2Ñ[Ô[�Ø”:Ô# yÒ0Ð0ØÝ”
˜1‘”�õ	 ”)‘+”+ 
Ñ*¨WÒ4Ð4ð —	’	ÐLÑMÔMÐMõ ‘”ˆAØˆJåð 	*ð 	*ð 	*ð 	ñ 	ô 	ˆAŒHð Ÿš $¤(Ô"BÈÐ]aÔ]kÐtx˜ÑyÔyð ð �Ø×!Ò! %Ñ(Ô(Ð(Ý�e‘”��õ Ð0 JÐ0Ð0Ñ1Ô1Ð1ð	ð 	ð 	ˆLð ×Ò˜Z¨Ð7aÑbÔbÐbÐbøåð 	8ð 	8ð 	8Ø�IŠIÐ6°1Ð6Ð6Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7øøøøð	8øøøð ŒH×*Ò*°ÀDÄNÐ*ÑSÔSÐSØŒHÔ*×BÒBÈÐ\`Ô\jÐBÑkÔkÐkÐkÐkøð ŒH×*Ò*°ÀDÄNÐ*ÑSÔSÐSØŒHÔ*×BÒBÈÐ\`Ô\jÐBÑkÔkÐkÐkøøøs1   „HH ÈI? È
H3ÈH.È)I? È.H3È3I? É?A	KN)Ú__name__Ú
__module__Ú__qualname__r   r8   r?   rJ   rN   rT   rj   rq   rt   r{   r~   rƒ   rˆ   rŠ   rŒ   r”   r˜   rœ   r    Úclassmethodr¦   rº   © r   r   r   r      sq  € € € € € ðð ð ð+4ð +4ð +4ðZ!#ð !#ð !#ðF%#ð %#ð %#ðN,#ð ,#ð ,#ð\4ð 4ð 4ð>CDð CDð CDðJ8ð 8ð 8ð6?ð ?ð ?ð@1ð 1ð 1ð9ð 9ð 9ð2ð 2ð 2ð2ð 2ð 2ð3ð 3ð 3ð3ð 3ð 3ð4ð 4ð 4ð04ð 4ð 4ð06ð 6ð 6ð64ð 4ð 4ð4 ð"ð "ñ „[ð"ðGlð Glð Glð Glð Glr   r   Ú__main__)Úosr°   ÚunittestÚunittest.mockr   r   Ú
kubernetesr   r   Úkubernetes.clientr   r"   r	   ÚTestCaser   r»   Úmainr¿   r   r   ú<module>rÈ      sÚ   ðð 
€	€	€	Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð ðqlð qlð qlð qlð ql�Ô"ñ qlô qlð qlðx ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   