
    !i-                         d dl Z d dlZd dlT d dlmZ  G d dej                  Ze                    d          Z	e	
                     e                        G d de          ZdS )	    N)*)JiraApic                       e Zd Zd ZdS )SensitiveDataFilterc                 "   t          |d          r~d}|j                            dd          }t          j        d||          }t          j        d||          }t          j        d||          }t          j        d||          }||_        d	S d S )
Nmsgz\1***\2z\""z("username":\s*")[^"]*(")z("password":\s*")[^"]*(")z ("webSudoPassword":\s*")[^"]*(")z("atl_token":\s*")[^"]*(")T)hasattrr   replaceresub)selfrecordrepl	clean_msgs       &./modules/jira/clients/zephyr_scale.pyfilterzSensitiveDataFilter.filter	   s    65!! 		D
**5#66I;T9MMI;T9MMIBD)TTI<dINNI"FJ4		 		    N)__name__
__module____qualname__r    r   r   r   r      s#        
 
 
 
 
r   r   zatlassian.rest_clientc                       e Zd Zg dZeg dz   Zeg dz   Zeg z   Zg dZg dZ fdZ	d Z
d Zd& fd
	Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd'dZd'dZd'dZd(dZd(dZd)d Z d)d!Z!d)d"Z"d# Z#d$ Z$d% Z% xZ&S )*ZephyrScale)archivedattachments	createdBy	createdOnestimatedTimezfolder(id,name,projectId)idkey	keyNumberlabelsname	objectiveowner	projectIdstatusztraceLinks(id,issueId,url,urlDescription,confluencePageId,confluenceAppId,title,testPlan(id,key),testRun(id,key),testCase(id,key),type(id,index,name,i18nKey,systemKey))	updatedBy	updatedOn)	averageTimecomponentIdlatestVersionmajorVersion
parameterspreconditionprioritytestDatazftestScript(steps(id,index,description,attachments,expectedResult,testData,testCase(id,key,projectId))))descriptionenvironmentIdsexecutionTimeplannedEndDateplannedStartDateprojectVersionIduserKeys)r    indexlastTestResult)r   r   
traceLinksexecutionDater5   
assignedTor7   r6   testScriptResultsuserKeyr;   	automatedenvironmenttestResultStatusjiraVersionIdactualStartDateactualEndDatecommentr    r'   r!   c                 ^     t                      j        |g|R i | d| _        d| _        d S )Nz
rest/testsz1.0)super__init__zephyr_api_rootzephyr_api_version)r   urlargskwargs	__class__s       r   rJ   zZephyrScale.__init__a   s@    .t...v...+"'r   c                 l    t          j                    }t          |          dk    r|d         j        S dS )u]    Получает имя метода, который вызвал текущий метод    unknown)inspectstacklenfunction)r   rU   s     r   _get_caller_method_namez#ZephyrScale._get_caller_method_nameg   s.    u::>>8$$yr   c                     || j         j        v S )u^    Проверяет, определен ли метод именно в этом классе )rP   __dict__)r   method_names     r   _is_method_defined_herez#ZephyrScale._is_method_defined_heren   s    dn555r   Nc                     |                                  }|                     |          r| j        }| j        }t	                                          |||          }|S )N)api_rootapi_version)rX   r\   rK   rL   rI   resource_url)r   resourcer^   r_   caller_methodr`   rP   s         r   r`   zZephyrScale.resource_urlr   si    4466''66 	2+H1Kww++# , 
 

 r   c                 V    |                      d          }|                     |          S )Nprojectr`   get)r   rM   s     r   get_projectszZephyrScale.get_projects   s%    	**xx}}r   c                 d    |                      d          }| d| }|                     |          S )Nrd   /re   r   
project_idbase_urlrM   s       r   get_projectzZephyrScale.get_project   s8    $$Y//((J((xx}}r   c                 f    |                      d          }| d| d}|                     |          S )Nrd   ri   z/permissionsre   rj   s       r   get_permissionszZephyrScale.get_permissions   s;    $$Y//44J444xx}}r   c                 f    |                      d          }| d| d}|                     |          S )Nrd   ri   z/userpermissionsre   rj   s       r   get_user_permissionsz ZephyrScale.get_user_permissions   s;    $$Y//88J888xx}}r   c                 f    |                      d          }| d| d}|                     |          S )Nrd   ri   z/rolesre   rj   s       r   	get_roleszZephyrScale.get_roles   s;    $$Y//..J...xx}}r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   labelparamsre   r   rk   rw   rM   s       r   
get_labelszZephyrScale.get_labels   s;     
 ((xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   rB   rv   re   rx   s       r   get_environmentszZephyrScale.get_environments   s;     
 ..xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   	iterationrv   re   rx   s       r   get_iterationszZephyrScale.get_iterations   s;     
 ,,xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   datasetrv   re   rx   s       r   get_datasetszZephyrScale.get_datasets   s;     
 	**xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   testcasestatusrv   re   rx   s       r   get_testcase_statusesz!ZephyrScale.get_testcase_statuses   <     
  011xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   testplanstatusrv   re   rx   s       r   get_testplan_statusesz!ZephyrScale.get_testplan_statuses   r   r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   testrunstatusrv   re   rx   s       r   get_testrun_statusesz ZephyrScale.get_testrun_statuses   s;     
 00xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   testresultstatusrv   re   rx   s       r   get_testresult_statusesz#ZephyrScale.get_testresult_statuses   <     
  233xxFx+++r   c                 b    d|i}|                      d          }|                     ||          S )Nr'   testcasepriorityrv   re   rx   s       r   get_testcase_prioritiesz#ZephyrScale.get_testcase_priorities   r   r   r   Fc                    d| dt          |                                          d}|t          |          |d<   |t          |          |d<   |p| j        }t	          |t
          t          t          f          rd                    |          }||d<   | 	                    d          }| 
                    ||	          S )
NztestCase.projectId IN (z!) ORDER BY testCase.keyNumber ASCqueryr   startAt
maxResults,fieldsztestcase/searchrv   )strlowerinttestcase_fields
isinstancelisttuplesetjoinr`   rf   r   rk   r   offsetlimitr   rw   rM   s           r   get_testcaseszZephyrScale.get_testcases   s     ]z\\\H++--
 
  #FF9#&u::F< /4/ftUC011 	&XXf%%F!x 122xxFx+++r   c                    d| dt          |                                          d}|t          |          |d<   |t          |          |d<   |p| j        }t	          |t
          t          t          f          rd                    |          }||d<   | 	                    d          }| 
                    ||	          S )
NztestPlan.projectId IN (z) ORDER BY testPlan.id ASCr   r   r   r   r   ztestplan/searchrv   )r   r   r   testplan_fieldsr   r   r   r   r   r`   rf   r   s           r   get_testplanszZephyrScale.get_testplans   s     VzUUUH++--
 
  #FF9#&u::F< /4/ftUC011 	&XXf%%F!x 122xxFx+++r   c                    d| dt          |                                          d}|t          |          |d<   |t          |          |d<   |p| j        }t	          |t
          t          t          f          rd                    |          }||d<   | 	                    d          }| 
                    ||	          S )
NztestRun.projectId IN (z) ORDER BY testRun.id ASCr   r   r   r   r   ztestrun/searchrv   )r   r   r   testrun_fieldsr   r   r   r   r   r`   rf   r   s           r   get_testrunszZephyrScale.get_testruns  s     TjSSSH++--
 
  #FF9#&u::F< .4.ftUC011 	&XXf%%F!x 011xxFx+++r   c                 &   i }|p| j         }t          |t          t          t          f          rd                    |          }||d<   |                     d          }| d| d}|                     ||          }|                    d          pg S )Nr   r   testrunri   z/testrunitemsrv   testRunItems)testrunitems_fieldsr   r   r   r   r   r`   rf   )r   
testrun_idr   rw   rl   rM   responses          r   get_testrun_testrunitemsz$ZephyrScale.get_testrun_testrunitems   s    343ftUC011 	&XXf%%F!x$$Y//55J55588C8//||N++1r1r   c                     d|i}|p| j         }t          |t          t          t          f          rd                    |          }||d<   |                     d          }| d| d}|                     ||          S )NitemIdr   r   r   ri   z/testresultsrv   )testresults_fieldsr   r   r   r   r   r`   rf   )r   r   item_idr   rw   rl   rM   s          r   get_testrun_testresultsz#ZephyrScale.get_testrun_testresults.  s     g
 242ftUC011 	&XXf%%F!x$$Y//44J444xxFx+++r   c                 b    |                      |dd|          }|                    d          pdS Nr       )r   r   r   totalr   )r   rf   )r   rk   r   
test_casess       r   get_total_testcaseszZephyrScale.get_total_testcases<  6    ''
4qS['\\
~~g&&+!+r   c                 b    |                      |dd|          }|                    d          pdS r   )r   rf   )r   rk   r   
test_planss       r   get_total_testplanszZephyrScale.get_total_testplans@  r   r   c                 b    |                      |dd|          }|                    d          pdS r   )r   rf   )r   rk   r   	test_runss       r   get_total_testrunszZephyrScale.get_total_testrunsD  s6    %%jQQY%ZZ	}}W%%**r   c                 f    |                      |          }| d| d}|                     |          S )Nri   z	/commentsre   )r   entity	entity_idrl   rM   s        r   get_comments_forzZephyrScale.get_comments_forH  s;    $$V,,00I000xx}}r   c                 j    |                      d          }| d| d| }|                     |          S )Nrd   ri   z/foldertree/re   )r   rk   r   rl   rM   s        r   get_foldertree_forzZephyrScale.get_foldertree_forM  s@    $$Y//<<J<<F<<xx}}r   c                 r    ddi}|                      d          }| d| d}|                     ||          S )Nr   zid,majorVersion,latestVersiontestcaseri   z/allVersionsrv   re   )r   testcase_keyrw   rl   rM   s        r   get_testcase_versionsz!ZephyrScale.get_testcase_versionsR  sL    ;<$$Z0066L666xxFx+++r   )NN)Nr   NF)N)F)'r   r   r   common_fieldsr   r   r   r   r   rJ   rX   r\   r`   rg   rm   ro   rq   rs   ry   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)rP   s   @r   r   r      s         M( $ 
' 
' 
' 
O # & & & N $b(O  
  0( ( ( ( (  6 6 6               , , ,, , ,, , ,, , ,, , ,, , ,, , ,, , ,, , ,, , , ,&, , , ,&, , , ,&2 2 2 2, , , ,, , , ,, , , ,+ + + +  
  
, , , , , , ,r   r   )rT   r   cmf.includemodules.jira.apir   loggingFilterr   	getLoggerlogger	addFilterr   r   r   r   <module>r      s     				     $ $ $ $ $ $    '.    
		2	3	3   $$&& ' ' '|, |, |, |, |,' |, |, |, |, |,r   