o
    Mf7                     @   s\   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 deZ
G dd deZdS )	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                   @   s   e Zd Zdd Zeddd Zeddd Zeddd	 Zed
dd Zeddd Z	eddd Z	eddd Z
eddd Zeddd Zeddd Zed
dd Zeddd ZdS )UserWorksWithProjectc                 C   s   t t }t|dddd}| jjd|dd| jj ddd1}|jd	kr.||j n| d
 | _	t
d| j	 d| jj  W d    d S W d    d S 1 sUw   Y  d S )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r r#   i/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/label_studio/tests/loadtests/locustfile.pyon_start   s,   

"zUserWorksWithProject.on_start   c                 C      | j d d S )Nz
/projects/r   getr    r#   r#   r$   project_list"      z!UserWorksWithProject.project_listc                 C      | j jd| j dd d S )Nz/projects/%iz/projects/<id>r   r   r)   r   r*   r#   r#   r$   project_dashboard&      z&UserWorksWithProject.project_dashboardc                 C   r-   )Nz/projects/%i/dataz/projects/<id>/datar.   r/   r*   r#   r#   r$   project_data*   r1   z!UserWorksWithProject.project_data   c                 C   r-   )Nz/projects/%i/label-streamz/projects/<id>/label-streamr.   r/   r*   r#   r#   r$   label_stream.   r1   z!UserWorksWithProject.label_streamc                 C   r-   Nz/projects/%i/expertsz/projects/<id>/expertsr.   r/   r*   r#   r#   r$   expert_page2   r1   z UserWorksWithProject.expert_pagec                 C   r-   r5   r/   r*   r#   r#   r$   r6   6   r1   c                 C   r'   )Nz/business/statsr(   r*   r#   r#   r$   stats:   r,   zUserWorksWithProject.statsc                 C   r-   )Nz/projects/%i/plotsz/projects/<id>/plotsr.   r/   r*   r#   r#   r$   project_stats>   r1   z"UserWorksWithProject.project_statsc                 C   r'   )Nz/business/expertsr(   r*   r#   r#   r$   expertsB   r,   zUserWorksWithProject.expertsc                 C   sH   t ddiddig}dd| jj d}| jjd| j ||dd	 d S )
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   r#   r#   r$   import_tasksF   s   
z!UserWorksWithProject.import_tasksc                 C   s   | j jd| j dd| j j idd}| }t|rOt|}tdddd	dtd
dggidgi}dd| j j d}| j j	d|d  ||dd d S d S )Nz/api/projects/%i/tasksr   r   z/api/projects/<id>/tasksr;   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   r#   r#   r$   complete_task_via_apiQ   s4   


z*UserWorksWithProject.complete_task_via_api   c                 C      |    d S N)	interruptr*   r#   r#   r$   stopo   s   zUserWorksWithProject.stopN)__name__
__module____qualname__r%   r   r+   r0   r2   r4   r6   r7   r8   r9   r<   rL   rQ   r#   r#   r#   r$   r   
   s4    











r   c                   @   s.   e Zd ZeddZediZdd Zdd ZdS )	WebsiteUser   	   
   c                 C   rN   rO   )signupr*   r#   r#   r$   r%   x   s   zWebsiteUser.on_startc                 C   s   | j d}|jd }tt }| dd| d}| j jd|d|id | j d	 }|d
 | j _|| j _	t
d| d| j j  d S )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    responser[   usernamer!   r#   r#   r$   rY   {   s   

zWebsiteUser.signupN)	rR   rS   rT   r   	wait_timer   tasksr%   rY   r#   r#   r#   r$   rU   t   s
    
rU   )__doc__r   rH   uuidr   locustr   r   r   r   r   rU   r#   r#   r#   r$   <module>   s    j