
    Ki                         S SK r S SKrS SKrS SKr S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr   " S S\R                  5      rg! \ a	    S SKJr   N8f = f)    N)Queue)MAX_MSG_SIZEConsumer)APIError)TEST_API_KEYc                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestConsumer   c                     [        5       n[        US5      nUR                  S5        UR                  5       nU R	                  US/5        g )N    )r   r   putnextassertEqual)selfqconsumerr   s       \/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/posthog/test/test_consumer.py	test_nextTestConsumer.test_next   s<    GAr?	a}}s#    c                     [        5       nSn[        USU5      n[        S5       H  nUR                  U5        M     UR	                  5       nU R                  U[        [        U5      5      5        g )N2   r   i'  )r   r   ranger   r   r   list)r   r   flush_atr   ir   s         r   test_next_limitTestConsumer.test_next_limit   sY    GAr8,uAEE!H }}tE(O45r   c                     [        5       n[        US5      nSS[        -  0nUR                  U5        UR	                  5       nU R                  U/ 5        U R                  UR                  5       5        g )Nr   mx)r   r   r   r   r   r   
assertTrueempty)r   r   r   oversize_msgr   s        r   test_dropping_oversize_msg'TestConsumer.test_dropping_oversize_msg"   s\    GAr?S</0	l}}r"	"r   c                     [        5       n[        U[        5      nSSSS.nUR                  U5        UR	                  5       nU R                  U5        g Ntrackpython eventdistinct_idtypeeventr,   )r   r   r   r   uploadr#   )r   r   r   r*   successs        r   test_uploadTestConsumer.test_upload+   sD    GA|, >-X	e//# r   c                    [        5       nSn[        U[        SUS9n[        R                  " S5       nUR                  5         [        SS5       H6  nSSU-  S	S
.nUR                  U5        [        R                  " US-  5        M8     U R                  UR                  S5        S S S 5        g ! , (       d  f       g = f)Ng333333?
   r   flush_intervalposthog.consumer.batch_postr      r*   python event %dr,   r-   皙?r   r   r   mockpatchstartr   r   timesleepr   
call_count)r   r   r7   r   	mock_postr   r*   s          r   test_flush_interval TestConsumer.test_flush_interval3   s     GA|bXZZ56)NN1a[#.2#0
 e

>C/0 ! Y1115 766s   A3B//
B=c                    [        5       nSnSn[        U[        X2S9n[        R                  " S5       nUR                  5         [        SUS-  5       H  nSSU-  S	S
.nUR                  U5        M     [        R                  " US-  5        U R                  UR                  S5        S S S 5        g ! , (       d  f       g = f)Ng      ?r5   r6   r8   r      r*   r:   r,   r-   r;   r<   )r   r   r7   r   r   rC   r   r*   s           r   "test_multiple_uploads_per_interval/TestConsumer.test_multiple_uploads_per_intervalF   s     G|h
 ZZ56)NN1hl+#.2#0
 e , JJ~+,Y1115 766s   A6B33
Cc                 T    [        S [        5      nSSSS.nUR                  U/5        g r)   )r   r   request)r   r   r*   s      r   test_requestTestConsumer.test_request[   s*    D,/ >-X%!r   c                   ^^^ UUU4S jmSTl         [        R                  " S[        R                  " TS95         SSSS.nTUR                  ::  a  UR                  U/5        O1 UR                  U/5        U R                  S	UR                  -  5        S S S 5        g ! [        T5       a  nU R                  UT5         S nAN/S nAff = f! , (       d  f       g = f)
Nc                  T   > T=R                   S-  sl         TR                   T::  a  Teg )Nr   )rB   )argskwargsexception_countexpected_exceptionrC   s     r   rC   3TestConsumer._test_request_retry.<locals>.mock_posta   s-      A% ##6(( 7r   r   r8   side_effectr*   r+   r,   r-   zErequest() should raise an exception if still failing after %d retries)	rB   r=   r>   MockretriesrK   failr.   r   )r   r   rS   rR   r*   excrC   s     ``  @r   _test_request_retry TestConsumer._test_request_retry`   s    	)
  !	ZZ)499+K
  ',E ("2"22  %)
$$eW- II_"**++
 
$ ./ >$$S*<==>%
 
s5   *C'B 9C C/CCCC
Cc                    [        S [        5      nU R                  U[        S5      S5        [        S [        5      nU R                  U[	        SS5      S5        [        S [        5      nU R                  U[	        SS5      S5        [        S [        5      n[	        SS5      n U R                  XS	5        U R                  S
5        [        S [        SS9nU R                  U[	        SS5      S5        g ! [         a     N9f = f)Nzgeneric exceptionrG     zInternal Server Errori  zToo Many Requestsi  zClient Errorsr   z+request() should not retry on client errorsr9   )rX   )r   r   r[   	Exceptionr   rY   )r   r   	api_errors      r   test_request_retryTestConsumer.test_request_retry   s    D,/  95H+I1M D,/  8C9P+QSTU D,/  8C9L+MqQ D,/S/2		E$$X!< IICD D,:  8C9P+QSTU  		s   $C4 4
D Dc                 z    [        S [        5      nUR                  5         U R                  UR                  5        g )N)r   r   pauseassertFalserunning)r   r   s     r   
test_pauseTestConsumer.test_pause   s,    D,/))*r   c                 4  ^  [        5       n[        U[        SSS9n0 n[        SS5       H  nSU[	        U5      '   M     SSS	US
.n[        [        R                  " U5      R                  5       5      n[        SU-  5      nU 4S jn[        R                  " SUS9 n	UR                  5         [        SUS-   5       H  n
UR                  U5        M     UR                  5         T R                  U	R                   S5        S S S 5        g ! , (       d  f       g = f)Ni r9   r6   r   r^   ,one_long_property_value_to_build_a_big_eventr*   r+   r,   )r.   r/   r,   
propertiesi z c                    > [         R                  " 5       nSUl        [        UR	                  5       5      nTR                  US:  SU-  5        U$ )N   g      VAz!batch size (%d) higher than limit)r=   rW   status_codelenencoder#   )_datarQ   resrequest_sizer   s        r   mock_post_fn6TestConsumer.test_max_batch_size.<locals>.mock_post_fn   sI    ))+C!COt{{}-LOO663lB Jr   zposthog.request._session.postrU   rG   )r   r   r   r   strro   jsondumpsrp   intr=   r>   r?   r   joinr   rB   )r   r   r   rk   nr*   msg_sizen_msgsru   rC   rq   s   `          r   test_max_batch_size TestConsumer.test_max_batch_size   s    GA|fQO
q#A!OJs1v  #($	
 tzz%(//12Y)*		 ZZ+
NN1fqj)e *FFHY1115
 
 
s   A$D		
D N)__name__
__module____qualname____firstlineno__r   r   r&   r2   rD   rH   rL   r[   ra   rg   r   __static_attributes__r   r   r   r	   r	      s;    $6#!6&6*"
 DV6+
"6r   r	   )rx   r@   unittestr=   queuer   ImportErrorposthog.consumerr   r   posthog.requestr   posthog.test.test_utilsr   TestCaser	   r   r   r   <module>r      sL        4 $ 0s68$$ s6  s   A AA