
    
/iA                     V    d dl T d dlT d dlmZ d dlmZ  G d deej                  ZdS )    )*)cmf_testcase_run)EvaTestCodeMixinc                        e Zd Zej        j        g dz   Zd Zd Zd Z fdZ	d Z
 fdZd Zeddef fd            Z fdZ xZS )CmfTestcaseRun)rungroup_changesgroup_changes_statusesc           
      *   |                      g d           | xj        dz  c_        t          j                            ddidd| g           t                              | | j        | j        | j        | j        | j	        d| j        	          | _
        d S )
N)testcaseresponsibleprioritytext   curFparent==)valuesfilterT)r   cache_testcaser   r   r   cache_estimate_timer   	iteration)load_fieldsr   modelsCmfTestcaseRunHistorybulk_updater   r   r   r   r   cur_history)selfargskwargss      ,./modules/evatest/models/cmf_testcase_run.pyr   zCmfTestcaseRun.run   s    ;;;	
 	
 	
 	!$00PXZ^`dOe0fff!77=(] $ 8n 8 	
 	
    c                     | j         j        sd S | j         j        r| j        xj        | j         j        z  c_        | j        xj        | j         j        z  c_        | j                                         d S N)r   
is_changedoldr   estimate_timenewsaver   s    r!   _calc_estimate_timez"CmfTestcaseRun._calc_estimate_time   sv    '2 	F#' 	FK%%)A)EE%%!!T%=%AA!!r"   c                    | j         j        s| j        r| j        sd S | j        j        }| j         j        r&| j         j        r|| j         j        xx         dz  cc<   | j         j        |vrd|| j         j        <   n|| j         j        xx         dz  cc<   || j        _        | j        j        dk    r5| j         dk    r*| j        j        	                    d          | j        _         | j        j        dk    rj| j         dvrat          j                            dd	| j        gg d
dd| j        gg          }|s*| j        j        	                    d          | j        _         | j                                         d S )Nr   OPENopenIN_PROGRESS)status_typeCLOSEDr.   in_progressr   r   )statusINr2   idz!=)r   )r4   r%   is_newr   testcase_run_cacher&   r(   cache_status_typeworkflowget_default_statusr   r   countr6   r)   )r   	run_cachecnts      r!   _cache_statuszCmfTestcaseRun._cache_status&   s   & 	$+ 	dk 	F K2	;? 	,t{5 	,dko&&&!+&&&;?)++)*Idko&&dko&&&!+&&&)2&;(F22t{f7L7L!%!5!H!HUb!H!c!cDK;(H44Lc9c9c'--xt{6S6_6_6_7;T476K6M- N NC  c%)[%9%L%LYa%L%b%b"r"   c                 N    t                                                      g dz   S )N)
ztestcase.estimate_timezparent.statusr4   zparent.testcase_run_cachezparent.workflowzparent.cache_status_typecur_history.responsibler   r   zparent.estimate_time)supersave_preload_fields)r   	__class__s    r!   rC   z"CmfTestcaseRun.save_preload_fields?   s4    ww**,, 0` 0` 0` ` 	`r"   c                     | j         j        r| j         | j        j         k    rd S | j         | j        _         | j                                         d S r$   )r   r%   r   r)   r*   s    r!   _calc_responsiblez CmfTestcaseRun._calc_responsibleC   sQ    * 	d.>$BRB^.^.^F'+'7$r"   c                    | j         j        | _        |                                  |                                  | j        r|                                  | j        r|                                   t                      j	        |i |S r$   )
r   namer+   r?   r   rF   r7   r   rB   r)   )r   r   r    rD   s      r!   r)   zCmfTestcaseRun.saveI   s    M&	  """ 	%""$$$; 	 HHJJJuww|T,V,,,r"   c                 :   |                      g d           | j        sdS | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        |                                  dS )uC   Обновляем поля из текущего рана
        )	zcur_history.priorityzcur_history.statusrA   zcur_history.cmf_ownerzcur_history.test_configurationr   r   	cmf_ownertest_configurationN)	r   r   r   r   rK   rJ   r4   rH   r)   r*   s    r!   recalc_fieldszCmfTestcaseRun.recalc_fieldsY   s     	 = = = 	> 	> 	>  	F(1+7"&"2"E)3&-$)			r"   NcsvFreturnc                 X    |sg d}t                                          ||||          S )N)r6   coderH   r   zparent.nameztestcase.cmf_author.nameztestcase.cmf_author.loginztestcase.cmf_owner.nameztestcase.cmf_owner.loginztestcycle_testcase_folder.nameztest_configuration.namezenvironment.namer   zstatus.namezresponsible.namezresponsible.loginr   r   
spent_timezrelease.name)rB   export2file)clsfield_namesbqlformat_fileinclude_archivedrD   s        r!   rR   zCmfTestcaseRun.export2filej   s=     
	&& & &K ww"";[BRSSSr"   c                     t           j                            |           D ]} |j        |i |  t	                      j        |i |S )N)r   )r   r   listdeleterB   )r   r   r    rhrD   s       r!   rZ   zCmfTestcaseRun.deletez   s[    .3343@@ 	' 	'BBIt&v&&&&uww~t.v...r"   )NNrM   F)__name__
__module____qualname__r   r   api_methodsr   r+   r?   rC   rF   r)   rL   classmethodstrrR   rZ   __classcell__)rD   s   @r!   r   r      s       '3
<
<
<	= 

 
 
"    2` ` ` ` `     - - - - -   " T Tcf T T T T T [T/ / / / / / / / /r"   r   N)cmf.include
cmf.fieldsmodules.evatest.fieldsr   -modules.evatest.models.cmf_evatest_code_mixinr   r    r"   r!   <module>rh      s            3 3 3 3 3 3 J J J J J Jw/ w/ w/ w/ w/%'7'F w/ w/ w/ w/ w/r"   