
    \j                        d dl Z d dlZd dlZd dlmZ 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 d dlmZmZ dadadadad	 Zd
 Zd Zd Z ej4                  dej6                  d      d        Zd Zd Zd Zd Z d Z!d Z" ej4                  dej6                  d      d        Z# ej4                  dej6                  d      d        Z$y)    N)Config)InMemoryFeatureStore)PollingUpdateProcessor)UnsuccessfulResponseException)FEATURESSEGMENTS)*)MockFeatureRequesterMockResponsec                  T    t               at               at	        j
                         ay N)r
   mock_requesterr   store	threadingEventready     X/root/env/lib/python3.12/site-packages/testing/impl/datasource/test_polling_processor.pysetup_functionr      s    )+N "EOOEr   c                  :    t         t         j                          y y r   )ppstopr   r   r   teardown_functionr      s    	~
	 r   c                 `    t        | t        t        t              at        j                          y r   )r   r   r   r   r   start)configs    r   setup_processorr      s    	u	EBHHJr   c                     t        d      j                         } t        d      j                         }t        d| j	                         it
        d|j	                         iit        _        t        t        d             t        j                          t        j                  t        dd       | k(  sJ t        j                  t
        dd       |k(  sJ t        j                  sJ t        j                         sJ y )NflagkeysegkeySDK_KEYc                     | S r   r   xs    r   <lambda>zDtest_successful_request_puts_feature_data_in_store.<locals>.<lambda>0   s    A r   c                     | S r   r   r$   s    r   r&   zDtest_successful_request_puts_feature_data_in_store.<locals>.<lambda>1   s    1 r   )FlagBuilderbuildSegmentBuilderr   to_json_dictr   r   all_datar   r   r   waitr   getinitializedr   )flagsegments     r   2test_successful_request_puts_feature_data_in_storer2   #   s    y!'')DX&,,.Gt((*
 	g**,
	N F9%&	JJL99Xy+6$>>>99Xx5@@@>>r   z$ldclient.config.Config.poll_intervalg?)new_callablereturn_valuec                     t        d      t        _        t        j                         }t	        t        d             t        j                  d       t        j                         rJ t        j                  dk\  sJ y )Nbadr"   g333333?   )	Exceptionr   	exceptiontimer   r   r   r-   r   r/   request_count)ignore_mock
start_times     r   >test_general_connection_error_does_not_cause_immediate_failurer>   7   sV    (/NJF9%&	JJsO~~''1,,,r   c                      t        d       y Ni  verify_unrecoverable_http_errorr   r   r   ,test_http_401_error_causes_immediate_failurerC   @   
    #C(r   c                      t        d       y r@   rA   r   r   r   ,test_http_403_error_causes_immediate_failurerF   C   rD   r   c                      t        d       y )Ni  verify_recoverable_http_errorr   r   r   4test_http_408_error_does_not_cause_immediate_failurerJ   F   
    !#&r   c                      t        d       y )Ni  rH   r   r   r   4test_http_429_error_does_not_cause_immediate_failurerM   I   rK   r   c                      t        d       y )Ni  rH   r   r   r   4test_http_500_error_does_not_cause_immediate_failurerO   L   rK   r   c                      t        d       y )Ni  rH   r   r   r   4test_http_503_error_does_not_cause_immediate_failurerQ   O   rK   r   c                     t        |       t        _        t        t	        d             t
        j                  d      }|sJ t        j                         rJ t        j                  dk(  sJ y )Nr"         ?   
r   r   r9   r   r   r   r-   r   r/   r;   statusr<   finisheds      r   rB   rB   R   sT    <VDNF9%&zz#HO8~~''1,,,r   c                     t        |       t        _        t        t	        d             t
        j                  d      }|rJ t        j                         rJ t        j                  dk\  sJ y )Nr"   rS   r7   rU   rV   s      r   rI   rI   [   sU    <VDNF9%&zz#H<~~''1,,,r   )%r   r:   mockldclient.configr   ldclient.feature_storer    ldclient.impl.datasource.pollingr   ldclient.impl.utilr   ldclient.versioned_data_kindr   r   testing.builderstesting.stub_utilr
   r   r   r   r   r   r   r   r   r2   patchPropertyMockr>   rC   rF   rJ   rM   rO   rQ   rB   rI   r   r   r   <module>rd      s       " 7 C < ;  @	
( 2ARARade- f-))'''' 2ARARade- f- 2ARARade- f-r   