示例#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 = deepcopy(new_issue_base_payload)
    del payload["object_attributes"]["title"]
    del payload["object_attributes"]["description"]
    del payload["object_attributes"]["url"]
    payload["object_attributes"]["action"] = "open"
    payload["repository"]["homepage"] = "test"
    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
示例#2
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 = deepcopy(new_issue_base_payload)
    payload["object_attributes"]["title"] = "test-title"
    payload["object_attributes"]["description"] = "test-body"
    payload["object_attributes"][
        "url"] = "http://gitlab.com/test/project/issues/11"
    payload["object_attributes"]["action"] = "open"
    payload["repository"]["homepage"] = "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
示例#3
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 = {
        "object_kind": "issue",
        "object_attributes": {
            "action": "open",
        },
    }
    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
示例#4
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 = {
        "object_kind": "issue",
        "object_attributes": {
            "title": "test-title",
            "description": "test-body",
            "url": "http://gitlab.com/test/project/issues/11",
            "action": "update",
        },
    }

    mail.outbox = []

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

    assert Issue.objects.count() == 1
    assert len(mail.outbox) == 0
示例#5
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 = {
        "object_kind": "issue",
        "object_attributes": {
            "title": "test-title",
            "description": "test-body",
            "url": "http://gitlab.com/test/project/issues/11",
            "action": "open",
        },
    }

    mail.outbox = []

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

    assert Issue.objects.count() == 2
    assert len(mail.outbox) == 1
示例#6
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 = deepcopy(new_issue_base_payload)
    payload["object_attributes"]["title"] = "test-title"
    payload["object_attributes"]["description"] = "test-body"
    payload["object_attributes"][
        "url"] = "http://gitlab.com/test/project/issues/11"
    payload["object_attributes"]["action"] = "update"
    payload["repository"]["homepage"] = "test"

    mail.outbox = []

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

    assert Issue.objects.count() == 1
    assert len(mail.outbox) == 0