
    	]j                         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	 d dl
mZmZ d dlmZ d dlmZmZ  G d	 d
e      Z G d de      Zy)    )TestCase)reverse)timezone)	urlencode)ProjectFactory)	APIClientAPITestCase)Task)PredictionFactoryTaskFactoryc                   (    e Zd Zed        Zd Zd Zy)TestProjectCountsListAPIc                 z   t               | _        t        | j                  j                        | _        t        j
                  j                  | j                  ddi       t        j
                  j                  | j                  ddi       t        j
                  j                  | j                  ddi       y )N)organizationtextzTask 1)projectdatazTask 2zTask 3)r   	project_1r   	project_2r
   objectscreateclss    N/root/env/lib/python3.12/site-packages/label_studio/projects/tests/test_api.pysetUpTestDataz&TestProjectCountsListAPI.setUpTestData   s    &(&CMM4N4NOCMM8JKCMM8JKCMM8JK    c                 4    t        d       dt        |       S )Nz projects:api:project-counts-list?)r   r   )selfparamss     r   get_urlz TestProjectCountsListAPI.get_url   s     <=>a	&@Q?RSSr   c                    t               }|j                  | j                  j                         |j	                  | j                  d            }| j                  |j                  d       | j                  |j                         d   d       | j                  j                  dddd| j                  j                  d	dddg}t        |j                         d
   d       }| j                  ||       y )Nuserz<id,task_number,finished_task_number,total_predictions_number)include   count   r   )idtask_numberfinished_task_numbertotal_predictions_number   resultsc                     | d   S )Nr)    )ds    r   <lambda>z:TestProjectCountsListAPI.test_get_counts.<locals>.<lambda>+   s
    !D' r   )key)r   force_authenticater   
created_bygetr!   assertEqualstatus_codejsonr)   r   sorted)r   clientresponseexpectedactuals        r   test_get_countsz(TestProjectCountsListAPI.test_get_counts   s    !!t~~'@'@!A::dll3qlrs--s3115 nn'' (),-	 nn'' (),-	
 	28IJ*r   N)__name__
__module____qualname__classmethodr   r!   r?   r0   r   r   r   r      s!    L LT+r   r   c                   .    e Zd Zed        Zd Zd Zd Zy)TestProjectModelVersionsAPIc                    t               | _        | j                  j                  | _        t	        | j                        | _        t        | j
                  d      | _        t        | j
                  d      | _        t        | j
                  d      | _	        t        | j
                  d      | _
        t        j                         | j                  _        | j                  j                          y )N)r   model_1)taskmodel_versionmodel_2model_3)r   r   r5   r$   r   rH   r   prediction_m1prediction_m1_2prediction_m2prediction_m3r   now
created_atsaver   s    r   r   z)TestProjectModelVersionsAPI.setUpTestData0   s    $&;;))s{{3-3889U/SXXYW-3889U-3889U (0||~$ r   c                 
   | j                   j                  | j                         | j                   j                  d| j                  j
                   d      }|j                  dk(  sJ |j                         ddddk(  sJ y )Nr#   /api/projects/z/model-versionsr&   r-   r(   )rJ   rK   rG   r;   r4   r$   r6   r   r)   r8   r9   r   r<   s     r   test_no_paramsz*TestProjectModelVersionsAPI.test_no_params?   sy    &&DII&6;;??^DLLOO3DO#TU##s***}}#
 
 	
 
r   c                    | j                   j                  | j                         | j                   j                  d| j                  j
                   d      }|j                  dk(  sJ |j                         dddk(  sJ y )Nr#   rT   z/model-versions?limit=2r&   r-   )rJ   rK   rU   rV   s     r   
test_limitz&TestProjectModelVersionsAPI.test_limitI   sw    &&DII&6;;??^DLLOO3DD[#\]##s***}}#
 
 	
 
r   c                 j   | j                   j                  | j                         | j                   j                  d| j                  j
                   d      }|j                  dk(  sJ |j                         d   J |j                         d   d   d   d	k(  sJ |j                         d   d   d
   dk(  sJ |j                         d   d   d   dk(  sJ |j                         d   d   d
   dk(  sJ |j                         d   d   d   dk(  sJ |j                         d   d   d
   dk(  sJ y )Nr#   rT   z/model-versions?extended=truer&   livestaticr   rI   rJ   r'   r-   rK   r(   rG   rU   rV   s     r   test_extendedz)TestProjectModelVersionsAPI.test_extendedR   s=   &&DII&6;;??^DLLOO3DDa#bc##s***}}v&...}}x(+O<	III}}x(+G4999}}x(+O<	III}}x(+G4999}}x(+O<	III}}x(+G4999r   N)r@   rA   rB   rC   r   rW   rY   r]   r0   r   r   rE   rE   /   s#    ! !


:r   rE   N)django.testr   django.urlsr   django.utilsr   django.utils.httpr   projects.tests.factoriesr   rest_framework.testr   r	   tasks.modelsr
   tasks.tests.factoriesr   r   r   rE   r0   r   r   <module>rf      s6       ! ' 3 6  @!+x !+H-:+ -:r   