
    Zia                         d dl Z d dlZd dlmZmZ d dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZ d dlmZ  G d dej                  Zej                            dg d          d	             ZdS )
    N)datedatetime)DatetimeSerializerQuotaLimitError
batch_postdecidedetermine_server_host)TEST_API_KEYc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestRequestsc                 r    t          t          ddddg          }|                     |j        d           d S )Ndistinct_idpython eventtrackr   eventtypebatch   r   r
   assertEqualstatus_codeselfress     T/root/projects/butler/venv/lib/python3.11/site-packages/posthog/test/test_request.pytest_valid_requestzTestRequests.test_valid_request   sL     -PWXX
 
 
 	#.....    c                 N    |                      t          t          dddd           d S )N
testsecrethttps://t.posthog.comFz[{]assertRaises	Exceptionr   r   s    r   test_invalid_request_errorz'TestRequests.test_invalid_request_error   s3    z<1H%QV	
 	
 	
 	
 	
r   c                 N    |                      t          t          ddg            d S )Nr!   t.posthog.com/r   r#   r&   s    r   test_invalid_hostzTestRequests.test_invalid_host"   s5    z<1A 	 	
 	
 	
 	
 	
r   c           
          dt          ddddddd          i}t          j        |t          	          }|                     |d
           d S )Ncreatedi                 i clsz){"created": "2012-03-04T05:06:07.891011"})r   jsondumpsr   r   )r   dataresults      r   test_datetime_serializationz(TestRequests.test_datetime_serialization'   sR    8D!Q1a@@AD&8999!LMMMMMr   c                     t          j                    }d|i}t          j        |t                    }d|                                z  }|                     ||           d S )Nr,   r2   z{"created": "%s"})r   todayr4   r5   r   	isoformatr   )r   r:   r6   r7   expecteds        r   test_date_serializationz$TestRequests.test_date_serialization,   s\    
5!D&8999&):)::*****r   c                 t    t          t          ddddgd          }|                     |j        d           d S )Nr   r   r   r      r   timeoutr   r   r   s     r   test_should_not_timeoutz$TestRequests.test_should_not_timeout3   sQ     -PWXX 
 
 
 	#.....r   c                     |                      t          j                  5  t          dddddgd           d d d            d S # 1 swxY w Y   d S )Nkeyr   r   r   r   g-C6?r@   )r$   requestsReadTimeoutr   r&   s    r   test_should_timeoutz TestRequests.test_should_timeout=   s    x344 	 	 (5!/ '  
 
 
 
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA	A	c                     t          j                    }d|_        t          j        dgi i dd                              d          |_        t          j        d|          5  | 	                    t                    5 }t          dd	           d d d            n# 1 swxY w Y   |                     |j        j        d           |                     |j        j        d
           d d d            d S # 1 swxY w Y   d S )Nr   feature_flagsF)quotaLimitedfeatureFlagsfeatureFlagPayloadserrorsWhileComputingFlagsutf-8posthog.request._session.postreturn_valuefake_key	fake_hostzFeature flags quota limited)rE   Responser   r4   r5   encode_contentmockpatchr$   r   r   r   	exceptionstatusmessage)r   mock_responsecms      r   test_quota_limited_responsez(TestRequests.test_quota_limited_responseK   s    )++$'!!%!0 1 "')-2	 "
 "
 &// 	 Z7mTTT 	R 	R""?33 0rz;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R\0#666R\13PQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rs7   #C3>BC3B	C3"B	#AC33C7:C7c                 X   t          j                    }d|_        t          j        ddii dd                              d          |_        t          j        d|          5  t          d	d
          }| 
                    |d         ddi           d d d            d S # 1 swxY w Y   d S )Nr   flag1TF)rK   rL   rM   rN   rO   rP   rR   rS   rK   )rE   rT   r   r4   r5   rU   rV   rW   rX   r   r   )r   r\   responses      r   test_normal_decide_responsez(TestRequests.test_normal_decide_response^   s    )++$'!!%!($')-2 "
 "
 &// 	 Z7mTTT 	H 	Hj+66HXn5GGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   #/BB#&B#N)__name__
__module____qualname__r   r'   r*   r8   r=   rB   rG   r^   rb    r   r   r   r      s        / / /
 
 


 
 

N N N
+ + +/ / /  R R R&H H H H Hr   r   zhost, expected))r"   r"   )https://t.posthog.com/rg   )t.posthog.comrh   )r)   r)   )#https://us.posthog.com.rg.proxy.comri   )app.posthog.comrj   )eu.posthog.comrk   )zhttps://app.posthog.comhttps://us.i.posthog.com)zhttps://eu.posthog.comhttps://eu.i.posthog.com)zhttps://us.posthog.comrl   )zhttps://app.posthog.com/rl   )zhttps://eu.posthog.com/rm   )zhttps://us.posthog.com/rl   )Nrl   c                 0    t          |           |k    sJ d S )N)r	   )hostr<   s     r   test_routing_to_custom_hostrp   n   s#    ( !&&(222222r   )r4   unittestr   r   rW   pytestrE   posthog.requestr   r   r   r   r	   posthog.test.test_utilsr
   TestCaser   markparametrizerp   rf   r   r   <module>rx      s.     # # # # # # # #                 1 0 0 0 0 0XH XH XH XH XH8$ XH XH XHv    &3 3' &3 3 3r   