Exemplo n.º 1
0
def test_issues_event_bad_issue(client):
    issue = f.IssueFactory.create()
    issue.project.default_issue_status = issue.status
    issue.project.default_issue_type = issue.type
    issue.project.default_severity = issue.severity
    issue.project.default_priority = issue.priority
    issue.project.save()

    payload = {
        "action": "opened",
        "issue": {},
        "assignee": {},
        "label": {},
    }
    mail.outbox = []

    ev_hook = event_hooks.IssuesEventHook(issue.project, payload)

    with pytest.raises(ActionSyntaxException) as excinfo:
        ev_hook.process_event()

    assert str(excinfo.value) == "Invalid issue information"

    assert Issue.objects.count() == 1
    assert len(mail.outbox) == 0
Exemplo n.º 2
0
def test_issues_event_other_than_opened_issue(client):
    issue = f.IssueFactory.create()
    issue.project.default_issue_status = issue.status
    issue.project.default_issue_type = issue.type
    issue.project.default_severity = issue.severity
    issue.project.default_priority = issue.priority
    issue.project.save()

    payload = {
        "action": "closed",
        "issue": {
            "title": "test-title",
            "body": "test-body",
            "html_url": "http://github.com/test/project/issues/11",
        },
        "assignee": {},
        "label": {},
    }

    mail.outbox = []

    ev_hook = event_hooks.IssuesEventHook(issue.project, payload)
    ev_hook.process_event()

    assert Issue.objects.count() == 1
    assert len(mail.outbox) == 0
Exemplo n.º 3
0
def test_issues_event_reopened_issue(client):
    issue = f.IssueFactory.create(external_reference=["github", "http://github.com/test/project/issues/11"])
    issue.project.default_issue_status = issue.status
    issue.project.default_issue_type = issue.type
    issue.project.default_severity = issue.severity
    issue.project.default_priority = issue.priority
    issue.project.save()

    close_status = f.IssueStatusFactory(project=issue.project, is_closed=True)
    issue.status = close_status
    issue.save()

    payload = {
        "action": "reopened",
        "issue": {
            "title": "test-title",
            "body": "test-body",
            "html_url": "http://github.com/test/project/issues/11",
        },
        "assignee": {},
        "label": {},
    }

    ev_hook = event_hooks.IssuesEventHook(issue.project, payload)
    ev_hook.process_event()

    assert issue.status == close_status

    issue.refresh_from_db()

    assert issue.status == issue.project.default_issue_status
Exemplo n.º 4
0
def test_issues_event_opened_issue(client):
    issue = f.IssueFactory.create()
    issue.project.default_issue_status = issue.status
    issue.project.default_issue_type = issue.type
    issue.project.default_severity = issue.severity
    issue.project.default_priority = issue.priority
    issue.project.save()
    Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_admin=True)
    notify_policy = NotifyPolicy.objects.get(user=issue.owner, project=issue.project)
    notify_policy.notify_level = NotifyLevel.all
    notify_policy.save()

    payload = {
        "action": "opened",
        "issue": {
            "title": "test-title",
            "body": "test-body",
            "html_url": "http://github.com/test/project/issues/11",
        },
        "assignee": {},
        "label": {},
        "repository": {
            "html_url": "test",
        },
    }

    mail.outbox = []

    ev_hook = event_hooks.IssuesEventHook(issue.project, payload)
    ev_hook.process_event()

    assert Issue.objects.count() == 2
    assert len(mail.outbox) == 1
Exemplo n.º 5
0
def test_issues_event_edited_issue(client):
    issue = f.IssueFactory.create(external_reference=["github", "http://github.com/test/project/issues/11"])
    issue.project.default_issue_status = issue.status
    issue.project.default_issue_type = issue.type
    issue.project.default_severity = issue.severity
    issue.project.default_priority = issue.priority
    issue.project.save()

    payload = {
        "action": "edited",
        "issue": {
            "title": "test-title",
            "body": "test-body updated",
            "html_url": "http://github.com/test/project/issues/11",
        },
        "assignee": {},
        "label": {},
    }

    ev_hook = event_hooks.IssuesEventHook(issue.project, payload)
    ev_hook.process_event()

    issue.refresh_from_db()

    assert issue.description == payload["issue"]["body"]