当前位置: 首页>>代码示例>>Python>>正文


Python JIRA.comments方法代码示例

本文整理汇总了Python中jira.JIRA.comments方法的典型用法代码示例。如果您正苦于以下问题:Python JIRA.comments方法的具体用法?Python JIRA.comments怎么用?Python JIRA.comments使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jira.JIRA的用法示例。


在下文中一共展示了JIRA.comments方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TestIssues

# 需要导入模块: from jira import JIRA [as 别名]
# 或者: from jira.JIRA import comments [as 别名]
class TestIssues(unittest.TestCase):
    def setUp(self):
        self.jira = JIRA(options=dict(server=TEST_URL, verify=False), basic_auth=(TEST_USERNAME, TEST_PASSWORD))
        self.issue1 = self.jira.create_issue(
            project='KB',
            summary='Test-1',
            issuetype={'name': 'Bug'},
        )
        self.issue2 = self.jira.create_issue(
            project='KB',
            summary='Test-2',
            issuetype={'name': 'Bug'},
        )

    def tearDown(self):
        issues = self.jira.search_issues('project = "KB" AND summary ~ "Test*"', fields=['key'])
        for _ in issues:
            _.delete()

    def assert_single_attachment(self):
        # TODO - Find how to test this automatically
        pass

    def assert_single_comment_with(self, text):
        comments = self.jira.comments(self.issue1.key)
        self.assertEqual(len(comments), 1)
        self.assertIn(text, comments[0].body)

    def test_new(self):
        result = CliRunner().invoke(topcli, ['issue', 'new', 'KB', 'task', 'Test-new'])
        self.assertEqual(result.exit_code, 0)
        issues = self.jira.search_issues('project = "KB" AND summary ~ "Test-new"', fields=['key', 'summary'])
        self.assertEqual(len(issues), 1)
        self.assertIn(issues[0].key, result.output)

    def test_transition(self):
        result = CliRunner().invoke(topcli, ['issue', 'transition', self.issue1.key, 'Done'])
        self.assertEqual(result.exit_code, 0)

    def test_assign(self):
        result = CliRunner().invoke(topcli, ['issue', 'assign', self.issue1.key, TEST_USERNAME])
        self.assertEqual(result.exit_code, 0)
        assignee = self.jira.issue(self.issue1.key, fields=['assignee']).fields.assignee
        self.assertEqual(assignee.key, TEST_USERNAME)

    def test_unassign(self):
        result = CliRunner().invoke(topcli, ['issue', 'assign', self.issue1.key, TEST_USERNAME])
        result = CliRunner().invoke(topcli, ['issue', 'unassign', self.issue1.key])
        self.assertEqual(result.exit_code, 0)
        assignee = self.jira.issue(self.issue1.key, fields=['assignee']).fields.assignee
        self.assertIsNone(assignee)

    def test_attach_file(self):
        with CliRunner().isolated_filesystem() as dir_path:
            with open('data.txt', 'w') as f:
                print('abc', file=f)
            result = CliRunner().invoke(topcli, ['issue', 'attach', self.issue1.key, 'data.txt'])
            self.assertEqual(result.exit_code, 0)
            self.assert_single_attachment()

    def test_comment_args(self):
        result = CliRunner().invoke(topcli, ['issue', 'comment', self.issue1.key, 'Comment', 'from args'])
        self.assertEqual(result.exit_code, 0)
        self.assert_single_comment_with('Comment from args')

    def test_comment_file(self):
        with CliRunner().isolated_filesystem() as dir_path:
            with open('comment.txt', 'w') as f:
                print('Comment from file', file=f)
            result = CliRunner().invoke(topcli, ['issue', 'comment', self.issue1.key, 'comment.txt'])
            self.assertEqual(result.exit_code, 0)
            self.assert_single_comment_with('Comment from file')

    def test_comment_prompt(self):
        result = CliRunner().invoke(topcli, ['issue', 'comment', self.issue1.key], input='Comment from prompt\n')
        self.assertEqual(result.exit_code, 0)
        self.assert_single_comment_with('Comment from prompt')

    def test_comment_stdin(self):
        result = CliRunner().invoke(topcli, ['issue', 'comment', self.issue1.key, '-'], input='Comment\nfrom\nstdin')
        self.assertEqual(result.exit_code, 0)
        self.assert_single_comment_with('Comment\nfrom\nstdin')

    def test_link(self):
        result = CliRunner().invoke(topcli, ['issue', 'link', self.issue1.key, self.issue2.key, '-t', 'duplicates'])
        self.assertEqual(result.exit_code, 0)
        links = self.jira.issue(self.issue1.key, fields=['issuelinks']).fields.issuelinks
        self.assertEqual(len(links), 1)
        self.assertEqual(links[0].outwardIssue.key, self.issue2.key)
        self.assertEqual(links[0].type.outward, 'duplicates')

    def test_unlink(self):
        result = CliRunner().invoke(topcli, ['issue', 'link', self.issue1.key, self.issue2.key, '-t', 'duplicates'])
        self.assertEqual(result.exit_code, 0)
        result = CliRunner().invoke(topcli, ['issue', 'unlink', self.issue1.key, self.issue2.key])
        links = self.jira.issue(self.issue1.key, fields=['issuelinks']).fields.issuelinks
        self.assertEqual(len(links), 0)

    def test_search_issue(self):
        result = CliRunner().invoke(topcli, ['issue', 'search'])
#.........这里部分代码省略.........
开发者ID:nbeney,项目名称:tools,代码行数:103,代码来源:test_jira.py

示例2: __init__

# 需要导入模块: from jira import JIRA [as 别名]
# 或者: from jira.JIRA import comments [as 别名]
class JiraCI:
    resolution_state = {"fixed": "1", "wont fixed": "2", "duplicate": "3", "incomplete": "4", "cannot reproduce": "5",
                        "not a bug": "6", "done": "7"}

    def __init__(self, jira_url, login, password):
        if version_info[1] <= 6:
            options = jira_url
        else:
            options = {"server": jira_url}
        self.jira = JIRA(options, basic_auth=(login, password))

    @staticmethod
    def debug_jira(text):
        stdout.write("[DEBUG JIRA]: {0}\n".format(text))

    def check_issue_exist(self, issue_id):
        try:
            self.jira.issue(issue_id)
        except JIRAError as e:
            print "[-] : {0} - {1}".format(issue_id, e.text)
            return False
        else:
            return True

    def check_issue_state(self, issue_id, issue_state):
        jira_issue = self.jira.issue(issue_id)
        if jira_issue.fields.status.name.lower() == issue_state.lower():
            return True
        else:
            return False

    def add_comment(self, issue_id, comment, formatting=False):
        jira_issue = self.jira.issue(issue_id)
        if formatting:
            comment = "{code}" + comment + "{code}"
        if not self.check_comment_exist(issue_id, comment):
            self.jira.add_comment(jira_issue, comment)
            self.debug_jira("Comment (for {0}) : {1} added".format(issue_id, comment.rstrip()))
        else:
            self.debug_jira("Comment (for {0}) : {1} already exist".format(issue_id, comment.rstrip()))

    def assign_issue(self, issue_id, assigned_user):
        jira_issue = self.jira.issue(issue_id)
        jira_issue.update(assignee={"name": assigned_user})

    def add_link(self, issue_id, title, url):
        url_object = {"url": url, "title": title}
        if not self.check_link_exist(issue_id, title, url):
            self.jira.add_remote_link(issue_id, url_object)
            self.debug_jira("Link (for {0}) : {1} added".format(issue_id, url))
        else:
            self.debug_jira("Link (for {0}) : {1} already exist".format(issue_id, url))

    def resolve_issue_to_reporter(self, issue_id):
        reporter = self.get_reporter_issue(issue_id)
        self.jira.transition_issue(issue_id, "5", resolution={"id": self.resolution_state["fixed"]})
        self.assign_issue(issue_id, reporter)

    def get_reporter_issue(self, issue_id):
        jira_issue = self.jira.issue(issue_id)
        return jira_issue.fields.reporter.name

    def check_comment_exist(self, issue_id, new_comment):
        comments = [c.body for c in self.jira.comments(issue_id)]
        if new_comment in comments:
            return True
        return False

    def check_link_exist(self, issue_id, title, url):
        links = [l.raw["object"] for l in self.jira.remote_links(issue_id)]
        for link in links:
            if link["title"] == title and link["url"] == url:
                return True
        return False

    def resolve_from_git(self, issue_id, short_commit_message, title_url, package_url):
        if self.check_issue_exist(issue_id):
            if not self.check_issue_state(issue_id, "resolved"):
                self.resolve_issue_to_reporter(issue_id)
                self.debug_jira("Issue {0} already resolve".format(issue_id))
            else:
                self.debug_jira("Issue {0} resolved".format(issue_id))
            self.add_link(issue_id, title_url, package_url)
            self.add_comment(issue_id, short_commit_message, formatting=True)

    def refer_from_git(self, issue_id, commit_message):
        if self.check_issue_exist(issue_id):
            self.add_comment(issue_id, commit_message, formatting=True)
开发者ID:nenf,项目名称:gitlab-webhook,代码行数:90,代码来源:jira_ci.py


注:本文中的jira.JIRA.comments方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。