U
    Ei-                     @   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                       s  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"g Zeg  Zdd#d$gZddd%d&dd'd dd(d)d$d*d+d,d-d.d/d0dddgZ fd1d2Z	d3d4 Z
d5d6 Zdn fd8d9	Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdodXdYZdpdZd[Zdqd\d]Zdrd^d_Zdsd`daZdtdbdcZ dudddeZ!dvdfdgZ"dhdi Z#djdk Z$dldm Z%  Z&S )w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projectVersionIdZuserKeysindexZlastTestResultZ
traceLinksZexecutionDateZ
assignedToZtestScriptResultsZuserKeyZ	automatedenvironmentZtestResultStatusZjiraVersionIdZactualStartDateZactualEndDateZcommentc                    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"   a   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_nameg   s    
z#ZephyrScale._get_caller_method_namec                 C   s   || j jkS )u^    Проверяет, определен ли метод именно в этом классе )r)   __dict__)r   method_namer   r   r   _is_method_defined_heren   s    z#ZephyrScale._is_method_defined_hereNc                    s4   |   }| |r| j}| j}t j|||d}|S )N)api_rootapi_version)r0   r3   r#   r$   r!   resource_url)r   resourcer4   r5   Zcaller_methodr6   r(   r   r   r6   r   s    
zZephyrScale.resource_urlc                 C   s   |  d}| |S )Nprojectr6   get)r   r%   r   r   r   get_projects   s    
zZephyrScale.get_projectsc                 C   s"   |  d}| d| }| |S )Nr8   /r9   r   
project_idbase_urlr%   r   r   r   get_project   s    
zZephyrScale.get_projectc                 C   s$   |  d}| d| d}| |S )Nr8   r<   z/permissionsr9   r=   r   r   r   get_permissions   s    
zZephyrScale.get_permissionsc                 C   s$   |  d}| d| d}| |S )Nr8   r<   z/userpermissionsr9   r=   r   r   r   get_user_permissions   s    
z ZephyrScale.get_user_permissionsc                 C   s$   |  d}| d| d}| |S )Nr8   r<   z/rolesr9   r=   r   r   r   	get_roles   s    
zZephyrScale.get_rolesc                 C   s    d|i}|  d}| j||dS )Nr   Zlabelparamsr9   r   r>   rE   r%   r   r   r   
get_labels   s
     
zZephyrScale.get_labelsc                 C   s    d|i}|  d}| j||dS )Nr   r    rD   r9   rF   r   r   r   get_environments   s
     
zZephyrScale.get_environmentsc                 C   s    d|i}|  d}| j||dS )Nr   Z	iterationrD   r9   rF   r   r   r   get_iterations   s
     
zZephyrScale.get_iterationsc                 C   s    d|i}|  d}| j||dS )Nr   ZdatasetrD   r9   rF   r   r   r   get_datasets   s
     
zZephyrScale.get_datasetsc                 C   s    d|i}|  d}| j||dS )Nr   ZtestcasestatusrD   r9   rF   r   r   r   get_testcase_statuses   s
     
z!ZephyrScale.get_testcase_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestplanstatusrD   r9   rF   r   r   r   get_testplan_statuses   s
     
z!ZephyrScale.get_testplan_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestrunstatusrD   r9   rF   r   r   r   get_testrun_statuses   s
     
z ZephyrScale.get_testrun_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestresultstatusrD   r9   rF   r   r   r   get_testresult_statuses   s
     
z#ZephyrScale.get_testresult_statusesc                 C   s    d|i}|  d}| j||dS )Nr   ZtestcasepriorityrD   r9   rF   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/searchrD   )strlowerinttestcase_fields
isinstancelisttuplesetjoinr6   r:   r   r>   rU   offsetlimitr   rE   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 ASCrP   rR   rS   rT   rU   ztestplan/searchrD   )rV   rW   rX   testplan_fieldsrZ   r[   r\   r]   r^   r6   r:   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 ASCrP   rR   rS   rT   rU   ztestrun/searchrD   )rV   rW   rX   testrun_fieldsrZ   r[   r\   r]   r^   r6   r:   r_   r   r   r   get_testruns  s    




zZephyrScale.get_testrunsc                 C   sf   i }|p| j }t|tttfr(d|}||d< | d}| d| d}| j||d}|dpdg S )NrT   rU   testrunr<   z/testrunitemsrD   ZtestRunItems)testrunitems_fieldsrZ   r[   r\   r]   r^   r6   r:   )r   
testrun_idrU   rE   r?   r%   Zresponser   r   r   get_testrun_testrunitems   s    


z$ZephyrScale.get_testrun_testrunitemsc                 C   s\   d|i}|p| j }t|tttfr,d|}||d< | d}| d| d}| j||dS )NZitemIdrT   rU   rg   r<   z/testresultsrD   )testresults_fieldsrZ   r[   r\   r]   r^   r6   r:   )r   ri   Zitem_idrU   rE   r?   r%   r   r   r   get_testrun_testresults.  s     


z#ZephyrScale.get_testrun_testresultsc                 C   s    | j |dd|d}|dpdS Nr      )rU   ra   r   totalr   )rb   r:   )r   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 rm   )rd   r:   )r   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 rm   )rf   r:   )r   r>   r   Z	test_runsr   r   r   get_total_testrunsD  s    zZephyrScale.get_total_testrunsc                 C   s$   |  |}| d| d}| |S )Nr<   z	/commentsr9   )r   entityZ	entity_idr?   r%   r   r   r   get_comments_forH  s    
zZephyrScale.get_comments_forc                 C   s(   |  d}| d| d| }| |S )Nr8   r<   z/foldertree/r9   )r   r>   rs   r?   r%   r   r   r   get_foldertree_forM  s    
zZephyrScale.get_foldertree_forc                 C   s0   ddi}|  d}| d| d}| j||dS )NrU   zid,majorVersion,latestVersionZtestcaser<   z/allVersionsrD   r9   )r   Ztestcase_keyrE   r?   r%   r   r   r   get_testcase_versionsR  s    
z!ZephyrScale.get_testcase_versions)NN)Nr   NF)Nr   NF)Nr   NF)N)N)F)F)F)'r   r   r   Zcommon_fieldsrY   re   rc   rh   rk   r"   r0   r3   r6   r;   r@   rA   rB   rC   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rb   rd   rf   rj   rl   rp   rq   rr   rt   ru   rv   __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   
