Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中测试注册jira问题_Django_Testing_Jira_Jira Plugin - Fatal编程技术网

如何在Django中测试注册jira问题

如何在Django中测试注册jira问题,django,testing,jira,jira-plugin,Django,Testing,Jira,Jira Plugin,我正在尝试测试连接到Jira并产生Jira问题的函数 我的services.py def get_jira_client(): global jira_client if jira_client is None: jira_client = JIRA(server=JIRA_URL, auth=(jira_user, jira_password)) return jira_client def register_jira_issue(ticket_id): jira = ge

我正在尝试测试连接到Jira并产生Jira问题的函数

我的
services.py

def get_jira_client():
global jira_client
if jira_client is None:
    jira_client = JIRA(server=JIRA_URL, auth=(jira_user, jira_password))
return jira_client


def register_jira_issue(ticket_id):
    jira = get_jira_client()
    ticket = Ticket.objects.prefetch_related(Prefetch('attachments', to_attr='ticket_attachments'),
                                             Prefetch('tags', to_attr='ticket_tags')).filter(id=ticket_id).first()
    new_issue = add_issue(jira, ticket, ticket.owner)
    set_tags(new_issue, *ticket.ticket_tags)
    add_attachments(ticket.ticket_attachments, new_issue)


def add_issue(jira, ticket, owner):
    issue_dict = {
        'project': {'key': project_key},
        'summary': ticket.title,
        'description': format_text_for_jira(ticket.description),
        'issuetype': {'name': issuetype_name},
        cf_username: str(owner.username),
        cf_hd_grant_id: ticket.grant_id,
        cf_user_email: str(owner.email),
        cf_user_fullname: f"{owner.first_name} {owner.last_name}"
    }

    new_issue = jira.create_issue(issue_dict)
    ticket.key = new_issue
    ticket.save()

    logger.info(f'User {ticket.owner} added issue ')

    return new_issue


def set_tags(jira_issue, tags):
    tags_dict = Tags.objects.filter(id=tags.id).values()[0]
    chosen_tags = [key for key, _ in tags_dict.items() if _ is True]
    if tags_dict['cluster_calculations'] or tags_dict['cluster_installation']:
        chosen_tags.append(tags_dict['cluster'])

    jira_issue.update(fields={"labels": chosen_tags})
    logger.info(f'User set tags {chosen_tags} to issue {jira_issue}')


def add_attachments(files, jira_issue):
    jira = get_jira_client()
    for file in files:
        jira.add_attachment(issue=jira_issue, attachment=file.file)
        logger.info(f'User added attachment {file} to issue {jira_issue}.')
函数
register jira issue
views.py中异步调用,它使用以下函数:

  • 添加问题
    -在jira中注册问题
  • 设置标签
    -设置发行标签
  • 添加附件
    -添加要发布的附件
有人知道在jira测试机票登记的方法吗?我尝试了
请求\u mock
但对我无效。我还看到了一些
unittest.mock补丁的示例,但我不知道如何将其用于jira实例