From e9a211ca8080e07727d0217e1cdc2851b13a85b7 Mon Sep 17 00:00:00 2001 From: Oleksii Shkurupii Date: Fri, 4 Sep 2020 17:26:59 +0300 Subject: test: add unit tests for resource label events API --- gitlab/tests/objects/test_resource_label_events.py | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 gitlab/tests/objects/test_resource_label_events.py (limited to 'gitlab/tests/objects') diff --git a/gitlab/tests/objects/test_resource_label_events.py b/gitlab/tests/objects/test_resource_label_events.py new file mode 100644 index 0000000..07f891c --- /dev/null +++ b/gitlab/tests/objects/test_resource_label_events.py @@ -0,0 +1,105 @@ +""" +GitLab API: https://docs.gitlab.com/ee/api/resource_label_events.html +""" + +import pytest +import responses + +from gitlab.v4.objects import ( + ProjectIssueResourceLabelEvent, + ProjectMergeRequestResourceLabelEvent, + GroupEpicResourceLabelEvent, +) + + +@pytest.fixture() +def resp_group_epic_request_label_events(): + epic_content = {"id": 1} + events_content = {"id": 1, "resource_type": "Epic"} + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/groups/1/epics", + json=[epic_content], + content_type="application/json", + status=200, + ) + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/groups/1/epics/1/resource_label_events", + json=[events_content], + content_type="application/json", + status=200, + ) + yield rsps + + +@pytest.fixture() +def resp_merge_request_label_events(): + mr_content = {"iid": 1} + events_content = {"id": 1, "resource_type": "MergeRequest"} + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/merge_requests", + json=[mr_content], + content_type="application/json", + status=200, + ) + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/merge_requests/1/resource_label_events", + json=[events_content], + content_type="application/json", + status=200, + ) + yield rsps + + +@pytest.fixture() +def resp_project_issue_label_events(): + issue_content = {"iid": 1} + events_content = {"id": 1, "resource_type": "Issue"} + with responses.RequestsMock() as rsps: + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/issues", + json=[issue_content], + content_type="application/json", + status=200, + ) + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/issues/1/resource_label_events", + json=[events_content], + content_type="application/json", + status=200, + ) + yield rsps + + +def test_project_issue_label_events(project, resp_project_issue_label_events): + issue = project.issues.list()[0] + label_events = issue.resourcelabelevents.list() + assert isinstance(label_events, list) + label_event = label_events[0] + assert isinstance(label_event, ProjectIssueResourceLabelEvent) + assert label_event.resource_type == "Issue" + + +def test_merge_request_label_events(project, resp_merge_request_label_events): + mr = project.mergerequests.list()[0] + label_events = mr.resourcelabelevents.list() + assert isinstance(label_events, list) + label_event = label_events[0] + assert isinstance(label_event, ProjectMergeRequestResourceLabelEvent) + assert label_event.resource_type == "MergeRequest" + + +def test_group_epic_request_label_events(group, resp_group_epic_request_label_events): + epic = group.epics.list()[0] + label_events = epic.resourcelabelevents.list() + assert isinstance(label_events, list) + label_event = label_events[0] + assert isinstance(label_event, GroupEpicResourceLabelEvent) + assert label_event.resource_type == "Epic" -- cgit v1.2.1