o
    HEDi                     @   s   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 ej	j
deddfddZej	j
dd	d
Zej	j
dddZej	j
dddZej	j
deddfddZdS )    N)MockerFixture)Model)APIRequestormockerreturnc                    sH   i   fdd}|  d| d}tjd|d  d}||ks"J d S )Nc                    s6   |d  t  }d|_d|jd< ti d|_|S )Nheaders   zapplication/jsonzcontent-typezutf-8)requestsResponsestatus_coder   jsondumpsencode_content)selfargskwargsrgot_headers n/var/www/www-root/data/www/ovozai.pdev.uz/venv/lib/python3.10/site-packages/openai/tests/test_api_requestor.pyfake_request   s   
z4test_requestor_sets_request_id.<locals>.fake_requestz!requests.sessions.Session.request1234xxx)
request_idzX-Request-Id)patchr   retrieveget)r   r   fake_request_idgot_request_idr   r   r   test_requestor_sets_request_id   s   	
r!   c                  C   `   t ddd} ddi}| jd|dd}d|v sJ |d dks J d	|v s&J |d	 d
ks.J d S )Ntest_keyopen_aikeyapi_typeTest_HeaderUnit_Test_Headerr   test_idmethodextrar   AuthorizationBearer test_keyr   request_headersapi_requestorr   r   r   r   test_requestor_open_ai_headers!      r4   c                  C   s`   t ddd} ddi}| jd|dd}d|v sJ |d dks J d	|v s&J |d	 dks.J d S )
Nr#   azurer%   r(   r)   r   r*   r+   zapi-keyr0   r2   r   r   r   test_requestor_azure_headers.   r5   r7   c                  C   r"   )Nr#   azure_adr%   r(   r)   r   r*   r+   r.   r/   r0   r2   r   r   r   test_requestor_azure_ad_headers;   r5   r9   c                    s   ddl m} t|d tddd}|   | d fdd	 |d
d  j  |d
d  j	
  | dd |  | dfdd	 |d
d  j	  j  t|d d S )Nr   )_thread_contextsessionr#   r8   r%   z"openai.api_requestor._make_sessionc                          S Nr   r   )mock_sessionr   r   <lambda>S       z/test_requestor_cycle_sessions.<locals>.<lambda>r   zhttp://example.comz.openai.api_requestor.MAX_SESSION_LIFETIME_SECSc                      r<   r=   r   r   )mock_session_2r   r   r?   `   r@   )openai.api_requestorr:   delattrr   	MagicMockr   request_rawrequestassert_calledcloseassert_not_called)r   r:   r3   r   )r>   rA   r   test_requestor_cycle_sessionsH   s    




rJ   )r   N)r   pytestr	   pytest_mockr   openair   rB   r   mark	requestorr!   r4   r7   r9   rJ   r   r   r   r   <module>   s     