
    	]j                         d dl Z 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                  Zd Z G d d      Zy)    N)ExportDataSerializer)settings)export_projectc                 H     	 dd l  fd}|S # t        $ r d }|cY S w xY w)Nr   c                     | S N )fs    Q/root/env/lib/python3.12/site-packages/label_studio/tests/tasks/test_functions.py	decoratorzmemory_limit.<locals>.decorator   s    H    c                       fd}|S )Nc                  F   t        j                  t        j                               }j	                  j
                        }j                  j
                  |j                         j                  z   df        | i |}j                  j
                  |       |S )N)	psutilProcessosgetpid	getrlimit	RLIMIT_AS	setrlimitmemory_inforss)argskwargsprocessprev_limitsresultr
   max_memresources        r   wrapperz0memory_limit.<locals>.decorator.<locals>.wrapper   s    nnRYY[1G",,X-?-?@Kx11G4G4G4I4M4MPW4WY[3\]''Fx11;?Mr   r	   )r
   r!   r   r    s   ` r   r   zmemory_limit.<locals>.decorator   s    	 r   )r    ImportError)r   r   r    s   ` @r   memory_limitr#      s6    	 %  	 s    !!c                   `    e Zd Zej                  d        Zej                  d        Zd Zd Zy)TestExportProjectc                 T    |j                  dt        j                  d      ddf      S )Nz/tasks.functions.DataExport.generate_export_files   streamzapplication/jsonproject.json)return_value)patchioBytesIO)selfmockers     r   generate_export_filez&TestExportProject.generate_export_file&   s/    ||=**Y/1C^T  
 	
r   c                     |S r   r	   )r,   configured_projects     r   projectzTestExportProject.project-   s    !!r   c                    t        |j                  j                         ddt        j                  i      j
                  }|j                  d      5  t        |j                  dt        j                        }d d d        t        j                  j                  t        j                  d      k(  sJ |j                  ||dt        j                  i        y # 1 sw Y   `xY w)NTinterpolate_key_frames)manycontextbuiltins.openJSONr'   )r   tasksallr   INTERPOLATE_KEY_FRAMESdatar)   r   id
EXPORT_DIRr   pathjoinassert_called_once_withCONVERTER_DOWNLOAD_RESOURCES)r,   r-   r.   r1   r;   filepaths         r   test_export_projectz%TestExportProject.test_export_project1   s    #MM-x/N/NO
 $	 	 \\/* 	O%gjj&(:M:MNH	O 277<<(;(;^LLLL44WdFHLqLqsuv	O 	Os   &CC c                    |j                  d      5  t        j                  t              5  t	        ddt
        j                         d d d        d d d        |j                          y # 1 sw Y   "xY w# 1 sw Y   &xY w)Nr6      r7   )r)   pytestraises	Exceptionr   r   r=   assert_not_called)r,   r-   r.   s      r   test_project_does_not_existz-TestExportProject.test_project_does_not_exist?   sd    \\/* 	?y) ?q&(*=*=>?	? 	..0? ?	? 	?s"   A5A)A5)A2	.A55A>N)	__name__
__module____qualname__rF   fixturer.   r1   rC   rJ   r	   r   r   r%   r%   %   s;    ^^
 
 ^^" "w1r   r%   )r*   r   r   rF   data_export.serializersr   django.confr   tasks.functionsr   mark	django_db
pytestmarkr#   r%   r	   r   r   <module>rU      s8    	 	   8   *[[""
01 1r   