U
    jg                     @   s2   d dl T d dlT d dlmZ G dd dejZdS )    )*)cmf_testcase_run_historyc                       s`   e Zd Zejjddg Z fddZdd Zdd Zd	d
 Z	ddd fdd
Z
dd Z  ZS )CmfTestcaseRunHistoryZgroup_changesZgroup_changes_statusesc              
      s    t   ddddddddd	g	 S )
Nztestcase.estimate_timez'testcycle_testcase_result.estimate_timezparent.spent_timez$testcycle_testcase_result.spent_timez*testcycle_testcase_result.cur_testcase_runzparent.default_responsibleresponsiblezparent.responsiblezparams_row.param_sets)supersave_preload_fieldsself	__class__ 4./modules/evatest/models/cmf_testcase_run_history.pyr      s        z)CmfTestcaseRunHistory.save_preload_fieldsc                 C   sJ   | j jsd S | j jr(| j j | j j8  _ | j j | j j7  _ | j  d S N)Z
spent_time
is_changedoldparentnewsaver   r   r   r   _calc_spent_time   s    z&CmfTestcaseRunHistory._calc_spent_timec                 C   s&   | j s| jr| jj sd S | jj | _ d S r   )r   r   r   r   r   r   _calc_responsible   s
    z'CmfTestcaseRunHistory._calc_responsiblec                 C   s$   | j jsd S | j | j_ | j  d S r   )statusr   r   r   r   r   r   r   _calc_parent_status%   s    
z)CmfTestcaseRunHistory._calc_parent_statusr   Tdepthemitc                   sP   |    |   |   | jj| _| j}t j|||d|}|rL|   |S )Nr   )	r   r   r   r   nameis_newr   r   _init_steps)r	   r   r   argskwargsr   resr
   r   r   r   +   s    
zCmfTestcaseRunHistory.savec                 C   s2  | j  }d i dg}| jddg | jjr@| j | jjg}| j ||}|D ]}t }|d D ]}tj	| |d |d |d |d |d	 |d
 | j d}|
dr|||d < |
dr||d  |_tjj|d ddD ]B}t|jd,}	tj||jd}
|
|	  |
  W 5 Q R X q|  qdqRd S )N)idparamszparams_row.param_sets.paramz!params_row.param_sets.param_valueZgroup_stepsr!   textstep_sectionexpected_result	test_datacomment)r   Ztestcase_stepr#   r$   r%   r&   r'   ZtestcaseZtestcase_templateparent_stepF)Zobj_idZsimplerb)r   r   )Zcache_testcaseZget_all_steps_structr   Zload_fieldsZ
params_rowZget_value_setZprocess_step_sequencedictZmodelsZCmfTestcaseRunHistoryStepgetr(   ZCmfTestcaseZattach_listopenZfull_path_fileZCmfAttachmentr   Zupload_filereadr   )r	   Zstepsr"   groupsgroupZparent_stepsstepZstep_runZ
attachmentfileZnew_attachmentr   r   r   r   7   s:    


z!CmfTestcaseRunHistory._init_steps)__name__
__module____qualname__r   r   Zapi_methodsr   r   r   r   r   r   __classcell__r   r   r
   r   r      s    r   N)Zcmf.includeZ
cmf.fieldsZmodules.evatest.fieldsr   r   r   r   r   r   <module>   s   