如何在Django中测试注册jira问题
我正在尝试测试连接到Jira并产生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
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实例