Пример #1
0
    def test_update_issue(self, jira_mock):
        jira_mock.return_value.add_comment.return_value = True

        add_comment_operator = JiraOperator(
            task_id='add_comment_test',
            jira_method="add_comment",
            jira_method_args={'issue': minimal_test_ticket.get("key"), 'body': 'this is test comment'},
            dag=self.dag,
        )

        add_comment_operator.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE, ignore_ti_state=True)

        self.assertTrue(jira_mock.called)
        self.assertTrue(jira_mock.return_value.add_comment.called)
Пример #2
0
    def test_issue_search(self, jira_mock):
        jql_str = 'issuekey=TEST-1226'
        jira_mock.return_value.search_issues.return_value = minimal_test_ticket

        jira_ticket_search_operator = JiraOperator(
            task_id='search-ticket-test',
            jira_method="search_issues",
            jira_method_args={'jql_str': jql_str, 'maxResults': '1'},
            dag=self.dag,
        )

        jira_ticket_search_operator.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE, ignore_ti_state=True)

        self.assertTrue(jira_mock.called)
        self.assertTrue(jira_mock.return_value.search_issues.called)
Пример #3
0
 def __init__(self,
              method_name: str,
              jira_conn_id: str = 'jira_default',
              method_params: Optional[dict] = None,
              result_processor: Optional[Callable] = None,
              **kwargs) -> None:
     super().__init__(**kwargs)
     self.jira_conn_id = jira_conn_id
     self.result_processor = None
     if result_processor is not None:
         self.result_processor = result_processor
     self.method_name = method_name
     self.method_params = method_params
     self.jira_operator = JiraOperator(task_id=self.task_id,
                                       jira_conn_id=self.jira_conn_id,
                                       jira_method=self.method_name,
                                       jira_method_args=self.method_params,
                                       result_processor=self.result_processor)
Пример #4
0
 def __init__(self,
              jira_conn_id='jira_default',
              method_name=None,
              method_params=None,
              result_processor=None,
              *args,
              **kwargs):
     super().__init__(*args, **kwargs)
     self.jira_conn_id = jira_conn_id
     self.result_processor = None
     if result_processor is not None:
         self.result_processor = result_processor
     self.method_name = method_name
     self.method_params = method_params
     self.jira_operator = JiraOperator(task_id=self.task_id,
                                       jira_conn_id=self.jira_conn_id,
                                       jira_method=self.method_name,
                                       jira_method_args=self.method_params,
                                       result_processor=self.result_processor)
Пример #5
0
class JiraSensor(BaseSensorOperator):
    """
    Monitors a jira ticket for any change.

    :param jira_conn_id: reference to a pre-defined Jira Connection
    :type jira_conn_id: str
    :param method_name: method name from jira-python-sdk to be execute
    :type method_name: str
    :param method_params: parameters for the method method_name
    :type method_params: dict
    :param result_processor: function that return boolean and act as a sensor response
    :type result_processor: function
    """

    @apply_defaults
    def __init__(
        self,
        *,
        method_name: str,
        jira_conn_id: str = 'jira_default',
        method_params: Optional[dict] = None,
        result_processor: Optional[Callable] = None,
        **kwargs,
    ) -> None:
        super().__init__(**kwargs)
        self.jira_conn_id = jira_conn_id
        self.result_processor = None
        if result_processor is not None:
            self.result_processor = result_processor
        self.method_name = method_name
        self.method_params = method_params
        self.jira_operator = JiraOperator(
            task_id=self.task_id,
            jira_conn_id=self.jira_conn_id,
            jira_method=self.method_name,
            jira_method_args=self.method_params,
            result_processor=self.result_processor,
        )

    def poke(self, context: Dict) -> Any:
        return self.jira_operator.execute(context=context)