
    	]j@x                        d Z 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
 ddlmZmZ i dddd	d	d	d
dddd	d	d	d
dddd	d	d	d
dd	dd	d	d	d
dddd	d	d	d
ddd	dddd
ddd	dddd
dd	d	d	d	dd
ddd	d	d	d	d
dd	dd	d	d	d
dddd	d	dd
ddddddd
ddddddd
ddddddd
ddddddd
d dddddd
d!dddddd
i d"dddddd
d#dd	d	d	d	d
d$d%d%d%d%d%d
d&d%d%d%d%d%d
d'd%d%d%d%d%d
d(d%d%d%d%d%d
d)d%d%d%d%d%d
d*d%d%d%d%d%d
d+d%d%d%d%d%d
d,d%d%d%d%d%d
d-d%d%d%d%d%d
d.d%d%d%d%d%d
d/d%d%d%d%d%d
d0d%d%d%d%d%d
d1d%d%d%d%d%d
d2d%d%d%d%d%d
d3d%d%d%d%d%d
i d4d%d%d%d%d%d
d5d%d%d%d%d%d
d6d%d%d%d%d%d
d7d%d%d%d%d%d
d8d%d%d%d%d%d
d9d%d%d%d%d%d
d:d%d%d%d%d%d
d;d%d%d%d%d%d
d<d%d%d%d%d%d
d=d%d%d%d%d%d
d>d%d%d%d%d%d
d?dddddd
d@d%d%d%d%d%d
dAd%d%d%d%d%d
dBd%d%d%d%d%d
dCd%d%d%d%d%d
dDdddddd
i dEdddddd
dFdddddd
dGdddddd
dHdddddd
dIdddddd
dJdddddd
dKdddddd
dLdddddd
dMdddddd
dNdddddd
dOdddddd
dPdddddd
dQdddddd
dRdddddd
dSdddddd
dTdddddd
Zi dddd	d	dUdddd	d	dUdddd	d	dUdd	dd	d	dUdddd	d	dUddd	dddUddd	dddUdVd	d	d	ddUdWd	d	d	ddUddd	d	d	dUdd	dd	d	dUdddd	d	dUddddddUddddddUddddddUddddddUd dddddUi d!dddddUd"dddddUd#dd	d	d	dUd$d%d%d%d%dUd&d%d%d%d%dUd'd%d%d%d%dUd*d%d%d%d%dUd+d%d%d%d%dUd,d%d%d%d%dUd-d%d%d%d%dUd.d%d%d%d%dUd0d%d%d%d%dUd1d%d%d%d%dUd2d%d%d%d%dUd3d%d%d%d%dUd4d%d%d%d%dUd5d%d%d%d%dUi d6d%d%d%d%dUdXd%d%d%d%dUd7d%d%d%d%dUd8d%d%d%d%dUd9d%d%d%d%dUd:d%d%d%d%dUd;d%d%d%d%dUd<d%d%d%d%dUd=d%d%d%d%dUd>d%d%d%d%dUd?dddddUd@d%d%d%d%dUdAd%d%d%d%dUdBd%d%d%d%dUdCd%d%d%d%d%d
dDdddddUdEdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdYZi ddddddUddddddUddddddUdd	dd	d	dUdddd	d	dUddd	dddUddd	dddUdVdddddUdWdddddUddddddUddddddUddddddUddddddUdddd	d	dUdddd	d	dUdddd	d	dUd dddddUi d!dddddUd"dddddUd#dd	d	d	dUd$d%d%d%d%dUd&d%d%d%d%dUd'd%d%d%d%dUd*d%d%d%d%dUd+d%d%d%d%dUd,d%d%d%d%dUd-d%d%d%d%dUd.d%d%d%d%dUd0d%d%d%d%dUd1d%d%d%d%dUd2d%d%d%d%dUd3d%d%d%d%dUd4d%d%d%d%dUd5d%d%d%d%dUi d6d%d%d%d%dUdXd%d%d%d%dUd7d%d%d%d%dUd8d%d%d%d%dUd9d%d%d%d%dUd:d%d%d%d%dUd;d%d%d%d%dUd<d%d%d%d%dUd=d%d%d%d%dUd>d%d%d%d%dUd?dddddUd@d%d%d%d%dUdAd%d%d%d%dUdBd%d%d%d%dUdCd%d%d%d%d%d
dDdddddUdEdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdYZi ddddddUddddddUddddddUdd	dd	d	dUdddd	d	dUddd	dddUddd	dddUdVdddddUdWdddddUddddddUddddddUddddddUddddddUdddd	d	dUdddd	d	dUdddd	d	dUd dddddUi d!dddddUd"dddddUd#dd	d	d	dUd$d%d%d%d%dUd&d%d%d%d%dUd'd%d%d%d%dUd*d%d%d%d%dUd+d%d%d%d%dUd,d%d%d%d%dUd-d%d%d%d%dUd.d%d%d%d%dUd0d%d%d%d%dUd1d%d%d%d%dUd2d%d%d%d%dUd3d%d%d%d%dUd4d%d%d%d%dUd5d%d%d%d%dUi d6d%d%d%d%dUdXd%d%d%d%dUd7d%d%d%d%dUd8d%d%d%d%dUd9d%d%d%d%dUd:d%d%d%d%dUd;d%d%d%d%dUd<d%d%d%d%dUd=d%d%d%d%dUd>d%d%d%d%dUd?dddddUd@d%d%d%d%dUdAd%d%d%d%dUdBd%d%d%d%dUdCd%d%d%d%d%d
dDdddddUdEdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdddddUdYZdZ Zd[ Zd\ Zd] Zej,                  j.                  d^        Zej,                  j.                  d_        Zej,                  j.                  d`        Zy)azThis 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)call_command)reverse)get_resolver)
AnnotationTaskz/tasks/1000/label   i  )getpostputpatchdeletez/tasks/1000/deletei.  i  z/tasks/1000/explorez/api/tasks/1000/cancelz/api/tasks/1000/annotations/   z!/api/tasks/1000/annotations/1000/   z/api/tasks/1000/i  z/api/projects/1000/annotations/z/api/projects/1000/results/z/api/projects/1000/tasks/bulk/z/api/projects/1000/tasks/i  z/annotator/invites/1000i  z/annotator/projects/1000/editorz/annotator/projects/z/annotator/account/z/annotator/signup/z/annotator/login/z/logoutz/api/z/api/projects/validatei  z/api/projects/templatez/api/projects/1000/backendsz'/api/projects/1000/backends/connectionsz/api/projects/backendsz/api/projects/1000/predictz"/api/projects/1000/onboarding/1000z/api/projects/1000/nextz%/api/projects/1000/expert_instructionz/api/projects/1000/z/api/projects/z/projects/upload-example/z/projects/1000/mlz/projects/1000/plotsz/projects/1000/expertsz/projects/1000/deletez/projects/1000/duplicatez/projects/1000/upload-example/z/projects/1000/dataz#/projects/1000/settings/edit-configz/projects/1000/settingsz/projects/1000/z/projects/renderz/projects/template/z/projects/create/z
/projects/z/business/not-approvedz/business/statsz/business/experts/listz/user/account/z/user/account/settingsz/user/signup/z/user/login/$/django-rq/queues/1000/1000/enqueue/$/django-rq/queues/1000/1000/requeue//django-rq/queues/actions/1000/#/django-rq/queues/1000/1000/delete//django-rq/queues/1000/1000/#/django-rq/queues/1000/requeue-all//django-rq/queues/1000/empty/ /django-rq/queues/1000/deferred//django-rq/queues/1000/started/ /django-rq/queues/1000/finished//django-rq/workers/1000/1000//django-rq/workers/1000//django-rq/queues/1000//django-rq/stats.json//django-rq/)r	   r
   r   r   z/api/projects/1000/tasks/deletez%/api/projects/1000/annotations/deletez/projects/1000/data/upload)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c           	         g }h d}t        d      j                  }|D ]  }t        |t              s||vs||   d   d   d   }i }|D ]r  }	d|	v rd||	<   |	dv rd||	<   n|	dv rd||	<   n|	d	v rd
||	<   n
|	dk(  rd||	<   |	dk(  s|	dk(  r| ||	<   n|	dk(  r|||	<   n|	dk(  r|||	<   n	d|	v rd||	<   |dk(  sid|d<   d
|d<   t 	 t	        ||      }
ddg}d}|D ]  }|
j                  |      sd} |s|j                  |
        |S # t
        j                  j                  j                  $ r}t        d| d| d       |d}~ww xY w)zGet all the ulrs from django>   schema-jsonschema-redocschema-swagger-uiNr      pk  )r$   step_pkjob_idqueue_indexscheduler_index)tokenuidb64)key1000sub_pathsettings
project_id
project_pktask_idannotation_ididpassword_reset_confirmz	1000-1000r*   r+   )kwargsz

 ---> Could not find "z"" with django reverse and kwargs "z"".
Probably some kwarg is absent

z/password-reset/complete/z/password-reset/TF)r   reverse_dict
isinstancestrr   djangourls
exceptionsNoReverseMatchprint
startswithappend)r0   r2   r3   r;   exclude_urlsresolverurl_namekeysr6   r,   urleexcludeaddexcs                  K/root/env/lib/python3.12/site-packages/label_studio/tests/test_endpoints.py
build_urlsrK   &  s   DGLD!..H .!h$)EH%a(+A.DF .3;"&F3KWW"&F3K//"&F3KG^"(F3KJ&",F3K ,&#*=",F3KI%")F3KO+"/F3KS["#F3K77&1F7O'-F8$3.4hv6 34FGGC  >>#&C  C ].!` K! ;;))88 0
:\]c\d e8 9 s   ?D'E,E  Ec                    | j                   dk7  r,d| _         | xj                  dz  c_        | j                          	 t        j                  j                  d      }	 t        j                  j                  d      }||fS # t        j                  $ r6 t               }dddii|_        | |_        d|_	        |j                          Y mw xY w# t        j                  $ r` t        j                  j                  d      }t               }ddd	d	d
gidg}||_        d|_	        ||_        |j                          Y ||fS w xY w)z(Create task and annotation for URL testsr%   2)r$   dataimagezkittens.jpgsomexnoneOpossum)	from_nameto_nametypevalue)r$   titlesaver   objectsr	   DoesNotExistrN   projectr4   r   resulttask)r\   task_dbannotation_db
annotations       rJ   restore_objectsrb   ^  s9    zzT
,,""d"+	"**..$.7 M!!%  &- 89!
 "" ,,""d"+"$*sFV\_h^iUjkl
)$M!!s%    B  C AC
CA-E Ec                    i }| D ]  }t        d|       i }t        |       |j                  |      }|j                  |d<   |j	                  |      }|j                  |d<   |j                  |      }|j                  |d<   |j                  |      }|j                  |d<   |j                  |      }|j                  |d<   |||<    y )Nz-->r	   r
   r   r   r   )r>   rb   r	   status_coder
   r   r   r   )r;   runnermatch_statusesr\   statusesrE   statusrs           rJ   
check_urlsrj   }  s    H eS JJsOuKKvJJsOuLL--wMM#==x 1    c                    t        | j                        \  | _        | _        t	        | j                  j
                  | j                  j
                  | j                  j
                        }t        |||j                  | j                         y)z5Get all urls from Django and GET/POST/PUT/DELETE themN)rb   r\   r_   r`   rK   r4   rj   rg   )ownerre   r;   s      rJ   runrn     s^    )8)G&EM5&emm&&(8(8%:M:M:P:PQDtVV__emm<rk   c                 H    | x}}t         |_        d|_        t        ||       y )Nowner_statuses)rp   rg   statuses_namern   )setup_project_choicesre   rm   s      rJ   test_all_urls_ownerrs     s%    **FU$FO+Fvrk   c                 @    t         |_        d|_        t        | |       y )Nother_business_statuses)ru   rg   rq   rn   )rr   business_clients     rJ   test_all_urls_other_businessrw     s    6O$=O!/rk   c           	         ddl m}  |d      }t        |      5 }t        j                  |      }d d d        d| d}| j                  d      j                  d      }t        dd	|
       t        j                  j                  |j                  |j                        }t        |      5 }t        j                  |      }d d d        t        d D              }t        d D              }t        |      t        |      kD  rKdj                  t        |      t        |      z
        }	J dt        |       dt        |       d|	 d|        t        |      t        |      k  rKdj                  t        |      t        |      z
        }
J dt        |       dt        |       d|
 d|        t        ||      D ]  \  }}||k(  rJ d|         y # 1 sw Y   xY w# 1 sw Y   #xY w)Nr   )	find_filezall_urls.jsonzIf you created, removed or updated URLs, run the following command:
./manage.py show_urls --format pretty-json > new_urls.json
After creation, you should verify and correct mismatched data by updating .subdirzshow_urls.json	show_urlszpretty-json)formatstdoutc              3   B   K   | ]  }t        |d    |d   f        ywrE   nameNr9   .0ds     rJ   	<genexpr>z5test_urls_mismatch_with_registered.<locals>.<genexpr>  s"     CQc1U8QvY/0C   c              3   B   K   | ]  }t        |d    |d   f        ywr   r   r   s     rJ   r   z5test_urls_mismatch_with_registered.<locals>.<genexpr>  s"     SQc1U8QvY"78Sr   
zURLs number mismatch: z# expected but new version contains z. URLs removed:
z.
z. New URLs added:
zURL name mismatch found. )core.utils.iory   openjsonloadmkdirjoinr   ospathdirnamebasenamesortedlensetzip)tmpdirry   all_urls_filefall_urlsinstructionfilenamef1all_current_urlsurls_removed
urls_addedrE   new_urls                rJ   "test_urls_mismatch_with_registeredr     s   'o.M	m	  99Q< UUbTccd	f 
 	X##$45A]1=ww||AIIqzz2H	h )299R=) C(CCHSBRSS
8}s+,,yyX5E1F!FG	
$S]O3VWZ[kWlVm n*^3{m=	
u 
X-.	.YYs#34s8}DE
	
$S]O3VWZ[kWlVm n  *|3{m=	
u
 H&67 IWg~H!:;-HH~I=   ) )s   G+G"G"G,)__doc__r   r   r:   pytestdjango.core.managementr   django.shortcutsr   django.urlsr   tasks.modelsr   r   rp   ru   other_annotator_statusesgroup_annotator_statusesrK   rb   rj   rn   mark	django_dbrs   rw   r    rk   rJ   <module>r      s    	   / $ $ )Dc#WZ[D#s3X[\D 3C#Y\]D c3sS\_`	D
 #CSSVbe$fD (c#X[gj)kD SsVYZD &sCVYeh'iD "3CRUad#eD %c3sUXdg&hD  c#PS_b!cD sCc]`aD &sCVYeh'iD CS3Z]^D 3C#Y\]D  #s3X[\!D" c#WZ[#D$ sCcSQ%D& S#cC3O'D( c3sS\_`)D* c3sS\_`+D, "3CRUad#e-D. .sCPS^amp/q/D0 c3sS\_`1D2 !#s3QT`c"d3D4 )#s3Y\hk*l5D6 sCc]`a7D8 ,S#c\_kn-o9D: 3C#Y\];D< c3sSTWX=D>  c#PS_b!c?D@ c#WZ[ADB CS3Z]^CDD c3sS\_`EDF S#cC[^_GDH Ss^a bIDJ %c3sUXdg&hKDL 3C#Y\]MDN *3CZ]il+mODP sCc]`aQDR sCcUXYSDT SsVYZUDV 3C#Y\]WDX c#WZ[YDZ #s3PST[D\ c3sS\_`]D^ sCcUXY_D` c3sS\_`aDb c3sSTWXcDd c3sS\_`eDf S#cCSVWgDh CS3RUViDj +CS[^jm,nkDl +CS[^jm,nmDn &sCVYeh'ioDp *3CZ]il+mqDr #CSSVbe$fsDt *3CZ]il+muDv $S#cTWcf%gwDx 'SWZfi(jyDz &sCVYeh'i{D| 'SWZfi(j}D~ $S#cTWcf%gD@ Ss^a bADB sCc]`aCDD c3sS\_`EDF 3C#QTUGDNCc#MC#s3#NC 3C3OC c3scR	C
 #CSTW$XC (c#Y\)]C SLC &sCWZ'[C ,S#c]`-aC "3CSV#WC %c3sVY&ZC  c#QT!UC sCsSC &sCWZ'[C CSCPC  3C3O!C" #s3#N#C$ c#M%C& sCsC'C( S#cSA)C* c3scR+C, c3scR-C. "3CSV#W/C0 !#s3RU"V1C2 )#s3Z]*^3C4 sCsS5C6 ,S#c]`-a7C8 3C3O9C:  c#QT!U;C< c#M=C> CSCP?C@ c3scRACB S#cSQCCD SPS TECF %c3sVY&ZGCH !#s3RU"VICJ 3C3OKCL *3C[^+_MCN sCsSOCP sCsKQCR SLSCT 3C3OUCV c#MWCX #s3#FYCZ c3scR[C\ sCsK]C^ c3scR_C` c3scJaCb c3sS\_`cCd S#cSIeCf CSCHgCh 58S\_,`47S\_,`/2CWZ'[36C[^+_,/STW$X36C[^+_-0#cUX%Y03SX[(\/2CWZ'[03SX[(\-0#cUX%Y(+SPS T'*CsS&)3scRC3GEC LCc#MC#s3#NC 3C3OC c3scR	C
 #CSTW$XC (c#Y\)]C SLC &sCWZ'[C ,S#c]`-aC "3CSV#WC %c3sVY&ZC  c#QT!UC sCsSC &sCWZ'[C CSCPC  3C3O!C" #s3#N#C$ c#M%C& sCsC'C( S#cSA)C* c3scR+C, c3scR-C. "3CSV#W/C0 !#s3RU"V1C2 )#s3Z]*^3C4 sCsS5C6 ,S#c]`-a7C8 3C3O9C:  c#QT!U;C< c#M=C> CSCP?C@ c3scRACB S#cSQCCD SPS TECF %c3sVY&ZGCH !#s3RU"VICJ 3C3OKCL *3C[^+_MCN sCsSOCP sCsKQCR SLSCT 3C3OUCV c#MWCX #s3#FYCZ c3scR[C\ sCsK]C^ c3scR_C` c3scJaCb c3sS\_`cCd S#cSIeCf CSCHgCh 58S\_,`47S\_,`/2CWZ'[36C[^+_,/STW$X36C[^+_-0#cUX%Y03SX[(\/2CWZ'[03SX[(\-0#cUX%Y(+SPS T'*CsS&)3scRC3GEC LCc#MC#s3#NC 3C3OC c3scR	C
 #CSTW$XC (c#Y\)]C SLC &sCWZ'[C ,S#c]`-aC "3CSV#WC %c3sVY&ZC  c#QT!UC sCsSC &sCWZ'[C CSCPC  3C3O!C" #s3#N#C$ c#M%C& sCsC'C( S#cSA)C* c3scR+C, c3scR-C. "3CSV#W/C0 !#s3RU"V1C2 )#s3Z]*^3C4 sCsS5C6 ,S#c]`-a7C8 3C3O9C:  c#QT!U;C< c#M=C> CSCP?C@ c3scRACB S#cSQCCD SPS TECF %c3sVY&ZGCH !#s3RU"VICJ 3C3OKCL *3C[^+_MCN sCsSOCP sCsKQCR SLSCT 3C3OUCV c#MWCX #s3#FYCZ c3scR[C\ sCsK]C^ c3scR_C` c3scJaCb c3sS\_`cCd S#cSIeCf CSCHgCh 58S\_,`47S\_,`/2CWZ'[36C[^+_,/STW$X36C[^+_-0#cUX%Y03SX[(\/2CWZ'[03SX[(\-0#cUX%Y(+SPS T'*CsS&)3scRC3GEC L5p">@=   0 0 #I #Irk   