U
     @i`(                     @   s`   d dl Z d dlZd dlT d dlmZ G dd dejZedZ	e	
e  G dd deZdS )	    N)*)JiraApic                   @   s   e Zd Zdd ZdS )SensitiveDataFilterc                 C   sb   t |dr^d}|jdd}td||}td||}td||}t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replZ	clean_msg r   &./modules/jira/clients/zephyr_scale.pyfilter	   s    
zSensitiveDataFilter.filterN)__name__
__module____qualname__r   r   r   r   r   r      s   r   zatlassian.rest_clientc                       sZ  e Zd Zddddddddd	d
ddddddddgZedddddddddg	 Zeddddd d!d"d#g Zeg  Z fd$d%Zd&d' Zd(d) Z	d] fd+d,	Z
d-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH Zd^dKdLZd_dMdNZd`dOdPZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Z d[d\ Z!  Z"S )aZephyrScalearchivedZattachmentsZ	createdByZ	createdOnZestimatedTimezfolder(id,name,projectId)idkeyZ	keyNumberlabelsnameZ	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))Z	updatedByZ	updatedOnZaverageTimeZcomponentIdZlatestVersionZmajorVersionZ
parametersZpreconditionpriorityZtestDatazftestScript(steps(id,index,description,attachments,expectedResult,testData,testCase(id,key,projectId)))descriptionZenvironmentIdsZexecutionTimeZplannedEndDateZplannedStartDateZprojectVersionIda  testRunItems(testResults(attachments,estimatedTime,traceLinks(id,issueId,type(id,index,name,i18nKey,systemKey)),executionDate,assignedTo,plannedEndDate,testScriptResults,userKey,lastTestResult,executionTime,automated,environment,plannedStartDate,testResultStatus,jiraVersionId,actualStartDate,comment,id,projectId,key,testCase(id,key,majorVersion,latestVersion,name,priority,objective)))ZuserKeysc                    s$   t  j|f|| d| _d| _d S )Nz
rest/testsz1.0)super__init__zephyr_api_rootzephyr_api_version)r   urlargskwargs	__class__r   r   r    F   s    zZephyrScale.__init__c                 C   s"   t  }t|dkr|d jS dS )u]    Получает имя метода, который вызвал текущий метод    unknown)inspectstacklenfunction)r   r+   r   r   r   _get_caller_method_nameL   s    
z#ZephyrScale._get_caller_method_namec                 C   s   || j jkS )u^    Проверяет, определен ли метод именно в этом классе )r'   __dict__)r   method_namer   r   r   _is_method_defined_hereS   s    z#ZephyrScale._is_method_defined_hereNc                    s4   |   }| |r| j}| j}t j|||d}|S )N)api_rootapi_version)r.   r1   r!   r"   r   resource_url)r   resourcer2   r3   Zcaller_methodr4   r&   r   r   r4   W   s    
zZephyrScale.resource_urlc                 C   s   |  d}| |S )Nprojectr4   get)r   r#   r   r   r   get_projectse   s    
zZephyrScale.get_projectsc                 C   s"   |  d}| d| }| |S )Nr6   /r7   r   
project_idbase_urlr#   r   r   r   get_projecti   s    
zZephyrScale.get_projectc                 C   s$   |  d}| d| d}| |S )Nr6   r:   z/permissionsr7   r;   r   r   r   get_permissionso   s    
zZephyrScale.get_permissionsc                 C   s$   |  d}| d| d}| |S )Nr6   r:   z/userpermissionsr7   r;   r   r   r   get_user_permissionsu   s    
z ZephyrScale.get_user_permissionsc                 C   s$   |  d}| d| d}| |S )Nr6   r:   z/rolesr7   r;   r   r   r   	get_roles{   s    
zZephyrScale.get_rolesc                 C   s    d|i}|  d}| j||dS )Nr   Zlabelparamsr7   r   r<   rC   r#   r   r   r   
get_labels   s
     
zZephyrScale.get_labelsc                 C   s    d|i}|  d}| j||dS )Nr   ZenvironmentrB   r7   rD   r   r   r   get_environments   s
     
zZephyrScale.get_environmentsc                 C   s    d|i}|  d}| j||dS )Nr   Z	iterationrB   r7   rD   r   r   r   get_iterations   s
     
zZephyrScale.get_iterationsc                 C   s    d|i}|  d}| j||dS )Nr   ZdatasetrB   r7   rD   r   r   r   get_datasets   s
     
zZephyrScale.get_datasetsc                 C   s    d|i}|  d}| j||dS )Nr   ZtestcasestatusrB   r7   rD   r   r   r   get_testcase_statuses   s
     
z!ZephyrScale.get_testcase_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestplanstatusrB   r7   rD   r   r   r   get_testplan_statuses   s
     
z!ZephyrScale.get_testplan_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestrunstatusrB   r7   rD   r   r   r   get_testrun_statuses   s
     
z ZephyrScale.get_testrun_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestresultstatusrB   r7   rD   r   r   r   get_testresult_statuses   s
     
z#ZephyrScale.get_testresult_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestcasepriorityrB   r7   rD   r   r   r   get_testcase_priorities   s
     
z#ZephyrScale.get_testcase_prioritiesr   Fc                 C   s   d| dt | d}|d k	r.t||d< |d k	rBt||d< |pJ| j}t|tttfrfd|}||d< | 	d}| j
||d	S )
NztestCase.projectId IN (z!) ORDER BY testCase.keyNumber ASCqueryr   startAt
maxResults,fieldsztestcase/searchrB   )strlowerinttestcase_fields
isinstancelisttuplesetjoinr4   r8   r   r<   rS   offsetlimitr   rC   r#   r   r   r   get_testcases   s    




zZephyrScale.get_testcasesc                 C   s   d| dt | d}|d k	r.t||d< |d k	rBt||d< |pJ| j}t|tttfrfd|}||d< | 	d}| j
||d	S )
NztestPlan.projectId IN (z) ORDER BY testPlan.id ASCrN   rP   rQ   rR   rS   ztestplan/searchrB   )rT   rU   rV   testplan_fieldsrX   rY   rZ   r[   r\   r4   r8   r]   r   r   r   get_testplans   s    




zZephyrScale.get_testplansc                 C   s   d| dt | d}|d k	r.t||d< |d k	rBt||d< |pJ| j}t|tttfrfd|}||d< | 	d}| j
||d	S )
NztestRun.projectId IN (z) ORDER BY testRun.id ASCrN   rP   rQ   rR   rS   ztestrun/searchrB   )rT   rU   rV   testrun_fieldsrX   rY   rZ   r[   r\   r4   r8   r]   r   r   r   get_testruns   s    




zZephyrScale.get_testrunsc                 C   s   | j |ddd}|dpdS Nr      )rS   r_   totalr   )r`   r8   )r   r<   Z
test_casesr   r   r   get_total_testcases  s    zZephyrScale.get_total_testcasesc                 C   s   | j |ddd}|dpdS re   )rb   r8   )r   r<   Z
test_plansr   r   r   get_total_testplans	  s    zZephyrScale.get_total_testplansc                 C   s   | j |ddd}|dpdS re   )rd   r8   )r   r<   Z	test_runsr   r   r   get_total_testruns  s    zZephyrScale.get_total_testrunsc                 C   s$   |  |}| d| d}| |S )Nr:   z	/commentsr7   )r   entityZ	entity_idr=   r#   r   r   r   get_comments_for  s    
zZephyrScale.get_comments_forc                 C   s(   |  d}| d| d| }| |S )Nr6   r:   z/foldertree/r7   )r   r<   rk   r=   r#   r   r   r   get_foldertree_for  s    
zZephyrScale.get_foldertree_forc                 C   s0   ddi}|  d}| d| d}| j||dS )NrS   zid,majorVersion,latestVersionZtestcaser:   z/allVersionsrB   r7   )r   Ztestcase_keyrC   r=   r#   r   r   r   get_testcase_versions  s    
z!ZephyrScale.get_testcase_versions)NN)Nr   NF)Nr   NF)Nr   NF)#r   r   r   Zcommon_fieldsrW   rc   ra   r    r.   r1   r4   r9   r>   r?   r@   rA   rE   rF   rG   rH   rI   rJ   rK   rL   rM   r`   rb   rd   rh   ri   rj   rl   rm   rn   __classcell__r   r   r&   r   r      s   
			


r   )r*   r	   Zcmf.includeZmodules.jira.apir   ZloggingZFilterr   Z	getLoggerloggerZ	addFilterr   r   r   r   r   <module>   s   
