U
    ,xh+                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_testplan_testcase_folderc                   @   s6   e Zd Zejjdg ZddddeeedddZdS )	CmfTestplanTestcaseFoldersetupNabstractF)root_folder_nameroot_folder_typeappend)testcase_idsr   r   c                   s   fdd fdd  dddg |r4|_|_   }|s|D ]0}|jj|krr||jj qR|    qR|D ]r}	tj	j
ddd	jgd
d	|	ggd}|stjj
|	ddddgd}
|
j}tj	j||
|
jd}|  |  qd S )Nc                    sh   | r`| j jdkr`tjjj| jd}|s\ | j }tjj|d| jd}|	  |	  |S S d S )NZCmfTestcaseFolder)parentnamer   )r   tree_parent_foldersys_typer   )
value
class_namemodelsr   getr   r   Ztree_parentloadsave)Ztestcase_foldertestplan_folderr   )get_parent_treeself 8./modules/evatest/models/cmf_testplan_testcase_folder.pyr      s"    z8CmfTestplanTestcaseFolder.setup.<locals>.get_parent_treec                    sL   g }t jj| dgdD ]}|| qt jj| dD ]}| | q4|S )Ntestcase)testplan_testcase_folderfields)r   )r   CmfTestplanTestcaselistr	   r   extend)folderZall_testcasestestplan_testcaseZ	subfolder)get_folder_testcasesr   r   r"      s    z=CmfTestplanTestcaseFolder.setup.<locals>.get_folder_testcasesr   r   r   ZANDz==ztestcase.id)filterresponsibler    zfolder.namezfolder.tree_parent)idr   )r   r   r   r$   )Zload_fieldsr   r   r   r   r%   removedeleter   r   r   r   ZCmfTestcaser    r$   )r   r
   r   r   r	   argskwargsZfolder_testcasesr!   Ztestcase_idr   r   r   )r"   r   r   r   r      s@    



zCmfTestplanTestcaseFolder.setup)	__name__
__module____qualname__r   r   Zapi_methodsr   strr   r   r   r   r   r      s    r   N)Zcmf.includeZmodules.evatest.fieldsr   r   r   r   r   r   <module>   s   