
    \j                         d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZ d dlmZ d Zd Zd	 Zd
 Zd Zd Zd Zy)    )Config)FeatureRequesterImpl)VERSION)FEATURESSEGMENTS)start_serverBasicResponseJsonResponsedo_proxy_testsc                  *   t               5 } t        d| j                        }t        |      }dddii}dddii}||d}t        |t
        |i}| j                  dt        |             |j                         }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nsdk-keysdk_keybase_uriflag1keysegment1flagssegments/sdk/latest-all)	r   r   urir   r   r   for_pathr
   get_all_data)serverconfigfrr   r   	resp_dataexpected_dataresults           X/root/env/lib/python3.12/site-packages/testing/impl/datasource/test_feature_requester.pytest_get_all_data_returns_datar#      s    	 '6)

C!&)UG-/5*!68$(<	"E8X?)<	+BC"&&&' ' 's   A4B		Bc                     t               5 } t        d| j                        }t        |      }i i d}| j	                  dt        |             |j                          | j                         }|j                  d   dk(  sJ |j                  d   dt        z   k(  sJ |j                  j                  d      J |j                  j                  d	      J 	 d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   Authorizationz
User-AgentzPythonClient/X-LaunchDarkly-WrapperX-LaunchDarkly-Tags)r   r   r   r   r   r
   r   require_requestheadersr   getr   r   r   r   reqs        r"   test_get_all_data_sends_headersr-      s    	 >6)

C!&)!r3	)<	+BC
$$&{{?+y888{{<(Og,EEEE{{78@@@{{45===> > >s   CC!!C*c                  L   t               5 } t        d| j                  dd      }t        |      }i i d}| j	                  dt        |             |j                          | j                         }|j                  j                  d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)	Nr   Flaskz0.1.0)r   r   wrapper_namewrapper_versionr   r   r&   zFlask/0.1.0
r   r   r   r   r   r
   r   r(   r)   r*   r+   s        r"   &test_get_all_data_sends_wrapper_headerr3   %   s    	 
J6)

'.'K!&)!r3	)<	+BC
$$&{{78MIII
J 
J 
Js   BBB#c                  J   t               5 } t        d| j                  d      }t        |      }i i d}| j	                  dt        |             |j                          | j                         }|j                  j                  d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   r/   )r   r   r0   r   r   r&   r2   r+   s        r"   6test_get_all_data_sends_wrapper_header_without_versionr5   2   s    	 
D6)

'.0!&)!r3	)<	+BC
$$&{{78GCCC
D 
D 
Ds   BBB"c                  P   t               5 } t        d| j                  ddd      }t        |      }i i d}| j	                  dt        |             |j                          | j                         }|j                  j                  d      d	k(  sJ 	 d d d        y # 1 sw Y   y xY w)
Nr   zmy-idz
my-version)idversion)r   r   applicationr   r   r'   z3application-id/my-id application-version/my-versionr2   r+   s        r"   #test_get_all_data_sends_tags_headerr:   ?   s    	 
o6)

%,FH!&)!r3	)<	+BC
$$&{{459nnnn
o 
o 
os   BBB%c            
         t               5 } t        d| j                        }t        |      }d}d}i i d}dddiii d}t        i t
        i i}t        dddiit
        i i}d}	| j                  |	t        |d	|i             |j                         }
|
|k(  sJ | j                         }d
|j                  j                         vsJ | j                  |	t        dd d	|i             |j                         }
|
|k(  sJ | j                         }|j                  d
   |k(  sJ | j                  |	t        |d	|i             |j                         }
|
|k(  sJ | j                         }|j                  d
   |k(  sJ | j                  |	t        dd d	|i             |j                         }
|
|k(  sJ | j                         }|j                  d
   |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   r   z	my-etag-1z	my-etag-2r   r   r   r   EtagzIf-None-Matchi0  )r   r   r   r   r   r   r   r
   r   r(   r)   keysr	   )r   r   r   etag1etag2
resp_data1
resp_data2expected_data1expected_data2req_pathr!   r,   s               r"   %test_get_all_data_can_use_cached_datarE   L   s   	 %56)

C!&) "4
")UG+= ?RQ
#R27#w%0B%DhPRT$,zVU;L"MN"'''$$&ckk&6&6&8888-TVU;L"MN"'''$$&{{?+u444,zVU;L"MN"'''$$&{{?+u444-TVU;L"MN"'''$$&{{?+u444K%5 %5 %5s   GGG%c                 $    d }t        |d|        y )Nc                     i i d}t         i t        i i}| j                  |j                  dz   t	        |             t        |      }|r	 |j                          y |j                         }||k(  sJ y #  Y y xY w)Nr   r   )r   r   r   r   r
   r   r   )r   r   securer   r    r   r!   s          r"   _feature_requester_proxy_testz6test_http_proxy.<locals>._feature_requester_proxy_testu   sy    !r3	"B"6*;;\)=TU!&)! __&F]***	s   
A3 3A7GETr   )monkeypatchrI   s     r"   test_http_proxyrL   t   s    + 0%E    N)ldclient.configr   *ldclient.impl.datasource.feature_requesterr   ldclient.versionr   ldclient.versioned_data_kindr   r   testing.http_utilr   r	   r
   testing.proxy_test_utilr   r#   r-   r3   r5   r:   rE   rL    rM   r"   <module>rU      sB    " K $ ; G G 2'>JDo&5PFrM   