
    \jE                     V   d dl mZ d dlmZmZ d dlmZmZmZm	Z	 d dl
mZmZmZ d dlZd dlZd dlZdZddiZd	d
dd
ddgdZd Zd Zd Zd Zd Zd Zd Zej6                  j9                  ej:                  j<                  dk(  xr ej:                  j>                  dk(  d      d        Z ej6                  j9                  ej:                  j<                  dk(  xr ej:                  j>                  dk(  d      d        Z!ej6                  j9                  ej:                  j<                  dk(  xr ej:                  j>                  dk(  d      d        Z"ej6                  j9                  ej:                  j<                  dk(  xr ej:                  j>                  dk(  d      d        Z#y)    )LDClient)Config
HTTPConfig)BasicResponseSequentialHandlerstart_secure_serverstart_server)make_put_eventpoll_contentstream_contentNzsdk-keykeyuserkeyflagkey   FT)r   versiononoffVariation
variationsc                     t               5 } t        t        t        g            5 }| j	                  d|       t        t        | j                  d      }t        |      5 }|j                         sJ |j                  t        d   t        d      dk(  sJ | j                         }|j                  d   t        k(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N/allFsdk_key
stream_urisend_eventsconfigr   TAuthorization)r	   r   r
   always_true_flagfor_pathr   r   urir   is_initialized	variationuserawait_requestheaders)stream_serverstream_handlerr   clientrs        J/root/env/lib/python3.12/site-packages/testing/test_ldclient_end_to_end.py$test_client_starts_in_streaming_moder+      s    	 
==N-=+?@A 		=^""6>:gM<M<M]bcF6* =f,,...''(8(?uMQUUUU!//1yy1W<<<=			=
= 
=
= =			= 		=
= 
=s;   C0;C$ AC?C$C0C!C$$C-	)C00C9c                  ^   t               5 } | j                  dt        d             t        t        | j
                  d      }t        |      5 }|j                         rJ |j                  t        d   t        d      dk(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr     Fr   r   r   r	   r   r   r   r   r    r   r!   r"   r   r#   )r&   r   r(   s      r*   ;test_client_fails_to_start_in_streaming_mode_with_401_errorr/      s    	 S=v}S'9:'8I8IY^_v& 	S&,,...##$4U$;T5IURRR	S	S S	S 	S	S Ss$   AB#6BB#B 	B##B,c                  $   t               5 } t        t        t        g            5 }t	        t        d      |      }| j                  d|       t        t        | j                  dd      }t        |      5 }|j                         sJ |j                  t        d   t        d      dk(  sJ | j                         }|j                  d	   t        k(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Ni  r   gMbP?F)r   r   initial_reconnect_delayr   r   r   Tr   )r	   r   r
   r   r   r   r   r   r   r    r   r!   r"   r#   r$   r%   )r&   r'   error_then_successr   r(   r)   s         r*   Etest_client_retries_connection_in_streaming_mode_with_non_fatal_errorr3   $   s   	 ==N-=+?@A 
	=^!2=3E~!V""6+=>gM<M<Min  D  EF6* =f,,...''(8(?uMQUUUU!//1yy1W<<<=
	== == =
	= 
	== =s<   DAC:6AC.C:D.C73C::D	?DDc                     t               5 } | j                  dt        t        g             t	        t
        | j                  dd      }t        |      5 }|j                         sJ |j                  t        d   t        d      dk(  sJ | j                         }|j                  d   t
        k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N/sdk/latest-allFr   base_uristreamr   r   r   Tr   )r	   r   r   r   r   r   r    r   r!   r"   r#   r$   r%   )poll_serverr   r(   r)   s       r*   "test_client_starts_in_polling_moder:   2   s    	 	9;.?O=Q0RS'kooPUejkv& 	9&((***##$4U$;T5ITQQQ))+A99_-888	9		9 	9	9 	9		9 	9s%   A
CAC4CC	
CCc                  `   t               5 } | j                  dt        d             t        t        | j
                  dd      }t        |      5 }|j                         rJ |j                  t        d   t        d      dk(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr5   r-   Fr6   r   r   r.   )r9   r   r(   s      r*   9test_client_fails_to_start_in_polling_mode_with_401_errorr<   >   s    	 S;.c0BC'kooPUejkv& 	S&,,...##$4U$;T5IURRR	S	S S	S 	S	S Ss$   AB$6BB$B!	B$$B-c            	         t               5 } t               5 }| j                  dt        t        g             |j                  dt	        d             t        t        | j                  |j                  dd      }t        |      5 }|j                         sJ |j                  t               |j                          |j                         }|j                  d   t        k(  sJ t        j                   |j"                        }t%        |      d	k(  sJ |d
   d   dk(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr5   z/bulk   FT)r   r7   
events_urir8   diagnostic_opt_outr   r   r   r   kindidentify)r	   r   r   r   r   r   r   r    r   r!   rB   r#   flushr$   r%   jsonloadsbodylenr9   events_serverr   r(   r)   datas         r*   +test_client_sends_event_without_diagnosticsrK   G   s2   	 5;^ 	5}  !2LCSAU4VW""7M#,>?g+//XeXiXity%)+F6* 	5f,,...%!//1yy1W<<<zz!&&)4yA~%~Awv*444	5	55 5	5 	5	5 	55 5s<   EA0EBD<#E+E<EEE	EEc                  N   t               5 } t               5 }| j                  dt        t        g             |j                  dt	        d             t        t        | j                  |j                  d      }t        |      5 }|j                         sJ |j                         }|j                  d   t        k(  sJ t        j                  |j                        }|d   d	k(  sJ 	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Nr5   z/diagnosticr>   F)r   r7   r?   r8   r   r   rA   zdiagnostic-init)r	   r   r   r   r   r   r   r    r   r!   r$   r%   rD   rE   rF   rH   s         r*   test_client_sends_diagnosticsrM   Z   s   	 9;^ 	9}  !2LCSAU4VW""=-2DEg+//XeXiXityzF6* 9f,,...!//1yy1W<<<zz!&&)F|'88889	99 99 9	9 	99 9s<   DA/DA$D*D2DDDD	DD$      ztest is skipped in Python 3.7)reasonc                     t               5 } | j                  dt                      t        d| j                  dd      }t        |d      5 }|j                         rJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr5   r   Fr6   g      ?)r   
start_wait)r   r   r   r   r    r   r!   serverr   r(   s      r*   3test_cannot_connect_with_selfsigned_cert_by_defaultrU   n   s    		 	/&)<>:zz	
 vC8 	/F,,....	/	/ 	/	/ 	/	/ 	/s$   AA=A1 A=1A:	6A==Bc            
      &   t               5 } | j                  dt                      t        d| j                  ddt        d            }t        |      5 }|j                         sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wNr5   r   FT)disable_ssl_verificationr   r7   r8   r   httpr   r   r   r   r   r    r   r   r!   rS   s      r*   <test_can_connect_with_selfsigned_cert_if_ssl_verify_is_falser\   {   s    		 
+&)<>:zzt<
 v& 	+&((***	+
+ 
+	+ 	+
+ 
+$   ABA;*B;B	 BBc            
      &   t               5 } | j                  dt                      t        d| j                  ddt        d            }t        |      5 }|j                         sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wrW   r[   rS   s      r*   Itest_can_connect_with_selfsigned_cert_if_disable_ssl_verification_is_truer_      s    		 
+&)<>:zz>
 v& 	+&((***	+
+ 
+	+ 	+
+ 
+r]   c            
      &   t               5 } | j                  dt                      t        d| j                  ddt        d            }t        |      5 }|j                         sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr5   r   Fz./testing/selfsigned.pem)ca_certsrY   r   r[   rS   s      r*   9test_can_connect_with_selfsigned_cert_by_setting_ca_certsrb      s    		 
+&)<>:zz)CD
 v& 	+&((***	+
+ 
+	+ 	+
+ 
+r]   )$ldclient.clientr   ldclient.configr   r   testing.http_utilr   r   r   r	   testing.stub_utilr
   r   r   rD   pytestsysr   r#   r   r+   r/   r3   r:   r<   rK   rM   markskipifversion_infomajorminorrU   r\   r_   rb        r*   <module>rp      s   $ . a a J J   

		%!5RSejlpcrt =S=
9S5&9( C$$**a/OC4D4D4J4Ja4OZyz
/ {
/ C$$**a/OC4D4D4J4Ja4OZyz+ {+ C$$**a/OC4D4D4J4Ja4OZyz+ {+ C$$**a/OC4D4D4J4Ja4OZyz+ {+ro   