
    Ni                     N    d dl T d dlmZ d dlmZ  G d deej                  ZdS )    )*)cmf_testplan)EvaTestCodeMixinc                        e Zd Zej        j        ddgz   Zd ZdddZe e	ddd	
          d                         Z
e	 d fd	            Ze	 	 d fd	            Z xZS )CmfTestplanrunsetupc                 h    | j         rd S t          j                            dddg          | _         d S )Nztestplan.base:defaultTsave_eval_code)codecache_inmemoryfields)workflowmodelsCmfWorkflowget)selfs    (./modules/evatest/models/cmf_testplan.py_calc_workflowzCmfTestplan._calc_workflow	   s:    = 	F*..4K\`jzi{.||    N)	testcyclec                    ddl m}  |d           t          | j        | j        j        |r|j        nd t          j        j        j        d           d S )Nr   )	cmf_alertup   Обработка может занять несколько минут, ожидайте оповещения.)testplan_idtestcycle_idnotify_person_id)kwargs)cmf.appr   schedule_deferred_job_run_jobidvaluegcurrent_person)r   r   argsr   r   s        r   r   zCmfTestplan.run   s    %%%%%%	  E  	F  	F  	FM#'7=5>%HY\\D()(8(;(A 	
 	
 	
 	
 	
 	
r       Запуск тест-плана   T)descriptionpriorityshow_bg_progressbarc                 B   dfd	t           j                            | dg          }|s:t                               d|j         |          }|                                 d S  ||            t           j                            |dd|j         d	d
d           d S )Nr   c                    t           j                            | g d          }|r!t           j                            |          }n|}t           j                            dd|gddg          D ]~}t                               |||j        |j        	          }|                                 |j	        D ]}|
                    ||
           |j        }	d} 
| |j        |	|dz              dS )u/  Копируем структуру плана тестирования

            Args:
                parent_folder (CmfTestcycle, CmfTestplanTestcaseFolder): родительский узел
                depth (int, optional): уровень копирования. Defaults to 0.
            )test_configurationstestplanr.   default_responsibler!   r   )r!   ztree_parent_folder.id==ztestplan_testcases.testcaseorderno)filterr   )parenttree_parent_foldernamer2   )r   testcycle_testcase_folderN   )r   CmfTestcycler   CmfTestcycleTestcaseFolderCmfTestplanTestcaseFolderlistr6   r2   savetestplan_testcasesr   r!   )r   parent_folder_idtree_parent_folder_iddepthr   r5   plan_testcase_folder
run_foldertestplan_testcaserun_folder_id	copy_trees             r   rF   z'CmfTestplan._run_job.<locals>.copy_tree   s_    +//<$G $G $G 0 H HI % /%+%F%J%JNc%J%d%d""%."(.(H(M(M/7GH19 )N ) ) [ [$ $>>$9K-2<P<X ?  
 !!!)=)P  %%))"+2< *     !+!
	,(<(?PUXYPYZZZZ'[ [r   r6   r0   u   Прогон )r6   r.   r&   u   Тест-план «u    » успешно запущенTr8   )personr6   msgforce_notify_current_personr)   )Nr   )r   r   r   r9   r6   r=   	CmfNotifyplace_notify)r   r   r   _args_kwargsr.   r   rF   s          @r   r    zCmfTestplan._run_job   s    !	[ !	[ !	[ !	[ !	[ !	[F %))[&)JJ 	++4X]44! ,  I NNF	,,,,%%#3Vx}VVV(, 	& 	
 	
 	
 	
 	
r   c                 t    |dk    r | j         |f||||d|S  t                      j        |f||||d|S )Nreleaseobject_fieldsr3   r   order_by)releases_options_listsuperfield_options_list)clsrelation_field_namerQ   r3   r   rR   r   	__class__s          r   rU   zCmfTestplan.field_options_listQ   s     )++,3,-@  ZP]flu{  GO  Z  Z  SY  Z  Z  Z)uww)y/<VTZemy yqwy y 	yr   c                 0   |sg }|sdg}|sg }|g dg}|o|                     d          }|                     dd           }	|r|s|	s|dd|gg}|                    d           |                    d            t                      j        |f||||d|S )	Nr6   )logic_prefixr1   zlist.release	parent_idsearch=sys_typer4   rP   )r   appendrT   rU   )rV   rW   rQ   r3   r   rR   filter_by_projectr   r[   r\   rX   s             r   rS   z!CmfTestplan.releases_options_listZ   s      	F 	 xH 	F@@@A!Dm&7&7&D&D	Hd++ 	=+ 	=6 	={C;<Fj!!!h)uww)y/<VTZemy yqwy y 	yr   )NNNN)NNNNN)__name__
__module____qualname__r   r   api_methodsr   r   staticmethodcmf_deferred_jobr    classmethodrU   rS   __classcell__)rX   s   @r   r   r      s       *6%9IIK} } }
 $( 	
 	
 	
 	
 	
 "Dqfjkkk4
 4
 lk \4
l ]ay y y y y [y ]a"y y y y y [y y y y yr   r   N)cmf.includemodules.evatest.fieldsr   -modules.evatest.models.cmf_evatest_code_mixinr   r    r   r   <module>rm      s        / / / / / / J J J J J Jhy hy hy hy hy"L$< hy hy hy hy hyr   