
    }-i'                         d dl Z d dlZd dl d dlmZ  G d dej                        Zej                  d      Z	e	j                   e               G d de      Zy)	    N)*)JiraApic                       e Zd Zd Zy)SensitiveDataFilterc                     t        |d      rd}|j                  j                  dd      }t        j                  d||      }t        j                  d||      }t        j                  d||      }t        j                  d||      }||_        y	y )
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#6I;T9MI;T9MIBD)TI<dINI"FJ "    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 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 Zd Z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))	updatedBy	updatedOn)	averageTimecomponentIdlatestVersionmajorVersion
parameterspreconditionprioritytestDatazZtestScript(steps(id,index,description,expectedResult,testData,testCase(id,key,projectId))))descriptionenvironmentIdsexecutionTimeplannedEndDateplannedStartDateprojectVersionIdaQ  testRunItems(testResults(estimatedTime,traceLinks(id,issueId),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)))userKeysc                 H    t        |   |g|i | d| _        d| _        y )Nz
rest/testsz1.0)super__init__zephyr_api_rootzephyr_api_version)r   urlargskwargs	__class__s       r   r<   zZephyrScale.__init__F   s*    .t.v.+"'r   c                 f    t        j                         }t        |      dkD  r|d   j                  S y)u]    Получает имя метода, который вызвал текущий метод    unknown)inspectstacklenfunction)r   rG   s     r   _get_caller_method_namez#ZephyrScale._get_caller_method_nameL   s+    u:>8$$$r   c                 2    || j                   j                  v S )u^    Проверяет, определен ли метод именно в этом классе )rB   __dict__)r   method_names     r   _is_method_defined_herez#ZephyrScale._is_method_defined_hereS   s    dnn5555r   c                     | j                         }| j                  |      r| j                  }| j                  }t        |   |||      }|S )N)api_rootapi_version)rJ   rN   r=   r>   r;   resource_url)r   resourcerP   rQ   caller_methodrR   rB   s         r   rR   zZephyrScale.resource_urlW   sZ    446''6++H11Kw+# , 

 r   c                 F    | j                  d      }| j                  |      S )NprojectrR   get)r   r?   s     r   get_projectszZephyrScale.get_projectse   s     	*xx}r   c                 T    | j                  d      }| d| }| j                  |      S )NrV   /rW   r   
project_idbase_urlr?   s       r   get_projectzZephyrScale.get_projecti   s0    $$Y/
!J<(xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )NrV   r[   z/permissionsrW   r\   s       r   get_permissionszZephyrScale.get_permissionso   s2    $$Y/
!J<|4xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )NrV   r[   z/userpermissionsrW   r\   s       r   get_user_permissionsz ZephyrScale.get_user_permissionsu   s3    $$Y/
!J<'78xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )NrV   r[   z/rolesrW   r\   s       r   	get_roleszZephyrScale.get_roles{   s2    $$Y/
!J<v.xx}r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   labelparamsrW   r   r]   ri   r?   s       r   
get_labelszZephyrScale.get_labels   s5     
 (xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   environmentrh   rW   rj   s       r   get_environmentszZephyrScale.get_environments   s5     
 .xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   	iterationrh   rW   rj   s       r   get_iterationszZephyrScale.get_iterations   s5     
 ,xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   datasetrh   rW   rj   s       r   get_datasetszZephyrScale.get_datasets   s5     
 	*xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   testcasestatusrh   rW   rj   s       r   get_testcase_statusesz!ZephyrScale.get_testcase_statuses   6     
  01xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   testplanstatusrh   rW   rj   s       r   get_testplan_statusesz!ZephyrScale.get_testplan_statuses   rx   r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   testrunstatusrh   rW   rj   s       r   get_testrun_statusesz ZephyrScale.get_testrun_statuses   s5     
 0xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   testresultstatusrh   rW   rj   s       r   get_testresult_statusesz#ZephyrScale.get_testresult_statuses   6     
  23xxFx++r   c                 R    d|i}| j                  d      }| j                  ||      S )Nr'   testcasepriorityrh   rW   rj   s       r   get_testcase_prioritiesz#ZephyrScale.get_testcase_priorities   r   r   c                 L   d| dt        |      j                         d}|t        |      |d<   |t        |      |d<   |xs | j                  }t	        |t
        t        t        f      rdj                  |      }||d<   | j                  d      }| j                  ||	      S )
NztestCase.projectId IN (z!) ORDER BY testCase.keyNumber ASCqueryr   startAt
maxResults,fieldsztestcase/searchrh   )strlowerinttestcase_fields
isinstancelisttuplesetjoinrR   rX   r   r]   r   offsetlimitr   ri   r?   s           r   get_testcaseszZephyrScale.get_testcases   s     /zl:[\H++-
  #FF9#&u:F< /4//ftUC01XXf%F!x 12xxFx++r   c                 L   d| dt        |      j                         d}|t        |      |d<   |t        |      |d<   |xs | j                  }t	        |t
        t        t        f      rdj                  |      }||d<   | j                  d      }| j                  ||	      S )
NztestPlan.projectId IN (z) ORDER BY testPlan.id ASCr   r   r   r   r   ztestplan/searchrh   )r   r   r   testplan_fieldsr   r   r   r   r   rR   rX   r   s           r   get_testplanszZephyrScale.get_testplans   s     /zl:TUH++-
  #FF9#&u:F< /4//ftUC01XXf%F!x 12xxFx++r   c                 L   d| dt        |      j                         d}|t        |      |d<   |t        |      |d<   |xs | j                  }t	        |t
        t        t        f      rdj                  |      }||d<   | j                  d      }| j                  ||	      S )
NztestRun.projectId IN (z) ORDER BY testRun.id ASCr   r   r   r   r   ztestrun/searchrh   )r   r   r   testrun_fieldsr   r   r   r   r   rR   rX   r   s           r   get_testrunszZephyrScale.get_testruns   s     .j\9RSH++-
  #FF9#&u:F< .4..ftUC01XXf%F!x 01xxFx++r   c                 T    | j                  |dd      }|j                  d      xs dS Nr       )r   r   totalr   )r   rX   )r   r]   
test_casess      r   get_total_testcaseszZephyrScale.get_total_testcases  -    ''
4q'I
~~g&+!+r   c                 T    | j                  |dd      }|j                  d      xs dS r   )r   rX   )r   r]   
test_planss      r   get_total_testplanszZephyrScale.get_total_testplans	  r   r   c                 T    | j                  |dd      }|j                  d      xs dS r   )r   rX   )r   r]   	test_runss      r   get_total_testrunszZephyrScale.get_total_testruns  s-    %%jQ%G	}}W%**r   c                 V    | j                  |      }| d| d}| j                  |      S )Nr[   z	/commentsrW   )r   entity	entity_idr^   r?   s        r   get_comments_forzZephyrScale.get_comments_for  s2    $$V,
!I;i0xx}r   c                 Z    | j                  d      }| d| d| }| j                  |      S )NrV   r[   z/foldertree/rW   )r   r]   r   r^   r?   s        r   get_foldertree_forzZephyrScale.get_foldertree_for  s6    $$Y/
!J<|F8<xx}r   c                 b    ddi}| j                  d      }| d| d}| j                  ||      S )Nr   zid,majorVersion,latestVersiontestcaser[   z/allVersionsrh   rW   )r   testcase_keyri   r^   r?   s        r   get_testcase_versionsz!ZephyrScale.get_testcase_versions  sB    ;<$$Z0
!L>6xxFx++r   )NN)Nr   NF)#r   r   r   common_fieldsr   r   r   r<   rJ   rN   rR   rY   r_   ra   rc   re   rk   rn   rq   rt   rw   r{   r~   r   r   r   r   r   r   r   r   r   r   r   __classcell__)rB   s   @r   r   r      s    M( $ 
' 
O # 	& 	N $b(O(6,,,,,,,,,,&,&,&,,+

,r   r   )rF   r   cmf.includemodules.jira.apir   loggingFilterr   	getLoggerlogger	addFilterr   r   r   r   <module>r      sT     	  $'..  
		2	3   $& 'E,' E,r   