
    	]j7                     h    d Z ddlZddlZddlmZ ddlmZmZmZm	Z	  G d de      Z
 G d de      Zy)	zThis file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license.
    N)uuid4)HttpUserTaskSetbetweentaskc                   b   e Zd Zd Z ed      d        Z ed      d        Z ed      d        Z ed      d        Z ed      d        Z	 ed      d	        Z	 ed      d
        Z
 ed      d        Z ed      d        Z ed      d        Z ed      d        Z ed      d        Zy)UserWorksWithProjectc                    t        t                     }t        j                  |dddd      }| j                  j                  d|dd| j                  j                   dd      5 }|j                  d	k7  r|j                  |j                         nG|j                         d
   | _	        t        d| j                   d| j                  j                          d d d        y # 1 sw Y   y xY w)NTz<View><Text name="my_text" value="$text"/><Choices name="my_class" toName="my_text"><Choice value="pos"/><Choice value="neg"/></Choices></View>)titleis_publishedskip_onboardinglabel_configz/api/projectsapplication/jsonToken zcontent-typeAuthorization)dataheaderscatch_response   idzProject z has been created by user )strr   jsondumpsclientposttokenstatus_codefailure
project_idprintname)selfr   payloadrs       Q/root/env/lib/python3.12/site-packages/label_studio/tests/loadtests/locustfile.pyon_startzUserWorksWithProject.on_start   s    EG** $#' !r	
 [[%7FSWS^S^SdSdReJfg	  
 
	`
 }}#		!--("#&&(4. 11KDKKL\L\K]^_
	` 
	` 
	`s   'A3C##C,   c                 :    | j                   j                  d       y )Nz
/projects/r   getr#   s    r&   project_listz!UserWorksWithProject.project_list"   s    %    c                 X    | j                   j                  d| j                  z  d       y )Nz/projects/%iz/projects/<id>r"   r   r+   r    r,   s    r&   project_dashboardz&UserWorksWithProject.project_dashboard&   s     8?OPr.   c                 X    | j                   j                  d| j                  z  d       y )Nz/projects/%i/dataz/projects/<id>/datar0   r1   r,   s    r&   project_dataz!UserWorksWithProject.project_data*   s!    +doo=DYZr.      c                 X    | j                   j                  d| j                  z  d       y )Nz/projects/%i/label-streamz/projects/<id>/label-streamr0   r1   r,   s    r&   label_streamz!UserWorksWithProject.label_stream.   s!    3dooELijr.   c                 X    | j                   j                  d| j                  z  d       y Nz/projects/%i/expertsz/projects/<id>/expertsr0   r1   r,   s    r&   expert_pagez UserWorksWithProject.expert_page2   !    .@G_`r.   c                 X    | j                   j                  d| j                  z  d       y r9   r1   r,   s    r&   r:   z UserWorksWithProject.expert_page6   r;   r.   c                 :    | j                   j                  d       y )Nz/business/statsr*   r,   s    r&   statszUserWorksWithProject.stats:   s    )*r.   c                 X    | j                   j                  d| j                  z  d       y )Nz/projects/%i/plotsz/projects/<id>/plotsr0   r1   r,   s    r&   project_statsz"UserWorksWithProject.project_stats>   s!    ,t>E[\r.   c                 :    | j                   j                  d       y )Nz/business/expertsr*   r,   s    r&   expertszUserWorksWithProject.expertsB   s    +,r.   c                     t        j                  ddiddig      }dd| j                  j                   d}| j                  j	                  d| j
                  z  ||d	       y )
Ntextzexample positive reviewzexample negative reviewr   r   r   z/api/projects/%i/tasks/bulkz/api/projects/<id>/tasks/bulkr   r"   )r   r   r   r   r   r    )r#   r$   r   s      r&   import_tasksz!UserWorksWithProject.import_tasksF   sl    **v'@AFLeCfgh#5&QUQ\Q\QbQbPcHde)DOO;0	 	 	
r.   c                    | j                   j                  d| j                  z  dd| j                   j                   id      }|j	                         }t        |      rt        j                  |      }t	        j                  dddd	dt        j                  d
dg      gidgi      }dd| j                   j                   d}| j                   j                  d|d   z  ||d       y y )Nz/api/projects/%i/tasksr   r   z/api/projects/<id>/tasksrE   resultchoicesmy_classmy_textposneg)type	from_nameto_namevaluer   r   z/api/tasks/%i/annotationsr   z/api/tasks/<id>/annotations)
r   r+   r    r   r   lenrandomchoicer   r   )r#   r%   
tasks_listany_taskr$   r   s         r&   complete_task_via_apiz*UserWorksWithProject.complete_task_via_apiQ   s    KKOO$t6$t{{/@/@.A&BC+  

 VVX
z?}}Z0Hjj$-)3'0&/&--2O1P%Q		G (:fUYU`U`UfUfTgLhiGKK+htn<2	   r.      c                 $    | j                          y N)	interruptr,   s    r&   stopzUserWorksWithProject.stopo   s    r.   N)__name__
__module____qualname__r'   r   r-   r2   r4   r7   r:   r>   r@   rB   rF   rW   r\    r.   r&   r	   r	   
   s4   `. 
!W& & 
!WQ Q 
!W[ [ 
"Xk k 
!Wa a 
!Wa a 
!W+ + 
!W] ] 
!W- - 
!W
 
 
"X : 
!W r.   r	   c                   2    e Zd Z edd      ZediZd Zd Zy)WebsiteUser   	   
   c                 $    | j                          y rZ   )signupr,   s    r&   r'   zWebsiteUser.on_startx   s    r.   c                    | j                   j                  d      }|j                  d   }t        t	                     }| dd|j                         d}| j                   j                  d|d|i       | j                   j                  d	      j                         }|d
   | j                   _        || j                   _	        t        d| d| j                   j                          y )N/	csrftokenz@loadtest.me12345678)emailpasswordr   z/user/signupzX-CSRFToken)r   z/api/current-user/tokendetailzClient z  successfully signed up. Token: )r   r+   cookiesr   r   upperr   r   r   r"   r!   )r#   responserj   usernamer$   s        r&   rg   zWebsiteUser.signup{   s    ;;??3'$$[1	uw<'j5:X`XfXfXhi=):TU;;??#<=BBD$X.#z!A$++BSBSATUVr.   N)	r]   r^   r_   r   	wait_timer	   tasksr'   rg   r`   r.   r&   rb   rb   t   s"    1I!2&E	Wr.   rb   )__doc__r   rS   uuidr   locustr   r   r   r   r	   rb   r`   r.   r&   <module>rx      s6       3 3g7 gTW( Wr.   