
     h=                     D    d dl  d dlmZ  G d dej                        Zy)    )*)cmf_testplan_testcase_folderc                   ^    e Zd Zej                  j
                  dgz   Zdddddededefd	Zy)
CmfTestplanTestcaseFoldersetupNabstractF)root_folder_nameroot_folder_typeappendtestcase_idsr	   r
   c                     fdfd j                  g d       |r| _        | _         j                  d       |sm        }|D ]`  }|j                  j
                  |v r&|j                  |j                  j
                         A|j                           j                          b |D ]  }	t        j                  j                  ddd j                  gd	d|	gg
      }|r9t        j                  j                  |	g d      }
 |
j                        }t        j                   j                  ||
|
j                        }|j                          |j                           y )Nc                    | r| j                   j                  dk(  rt        j                  j	                  j
                  | j                        }|sm | j                  j                               }t        j                  j
                  |d| j                        }|j                          |j                          |S S )NCmfTestcaseFolder)parentnamer   )r   tree_parent_foldersys_typer   )
value
class_namemodelsr   getr   r   tree_parentloadsave)testcase_foldertestplan_folderr   get_parent_treeselfs      8./modules/evatest/models/cmf_testplan_testcase_folder.pyr   z8CmfTestplanTestcaseFolder.setup.<locals>.get_parent_tree   s    ?#8#8#C#CGZ#Z"("B"B"F"F;;(-- #G # ')89T9T9Y9Y9[)\&&,&F&F#{{+=!+,11	 'G 'O $((*&++-&&    c                     g }t         j                  j                  | dg      D ]  }|j                  |        t         j                  j                  |       D ]  }|j                   |              |S )Ntestcase)testplan_testcase_folderfields)r   )r   CmfTestplanTestcaselistr   r   extend)folderall_testcasestestplan_testcase	subfolderget_folder_testcasess       r   r,   z=CmfTestplanTestcaseFolder.setup.<locals>.get_folder_testcases   s    M%+%?%?%D%D^dnxmy%D%z 8!$$%678#==BBV\B] F	$$%9)%DEF  r    )r   r   r   T)	only_dataANDr   z==ztestcase.id)filter)responsibler(   zfolder.namezfolder.tree_parent)idr$   )r   r#   r"   r0   )load_fieldsr   r   r   r"   r1   removedeleter   r%   r   r   CmfTestcaser(   r0   )r   r   r	   r
   r   argskwargsfolder_testcasesr*   testcase_idr"   r   r,   r   s   `           @@r   r   zCmfTestplanTestcaseFolder.setup   sf   	(	! 	78(DI(		D	!3D9%5  !$--00L@ ''(9(B(B(E(EF &,,.IIK  ( 	'K & : : > >u4-k2G > ! %!--11[Y 2 ["1(//"B$*$>$>;;-<% ( 4 4	 %? %! "&&($$&!	'r    )	__name__
__module____qualname__r   r   api_methodsr&   strr    r    r   r   r      s?    .HHTTX_W``KCG#-e>' >'s >'">'r    r   N)cmf.includemodules.evatest.fieldsr   r   r?   r    r   <module>rB      s      ?A' < V V A'r    