Skip to content

Commit 775cd78

Browse files
isaac-philipJohnVillalovos
authored andcommitted
feat(functional): #2547 merge-train api for status and add mr - test data modifications
Signed-off-by: Isaac Philip <4974658+isaac-philip@users.noreply.github.com>
1 parent cb4e015 commit 775cd78

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

gitlab/v4/objects/merge_trains.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from gitlab.base import RESTManager, RESTObject
2-
from gitlab.mixins import GetMixin, ListMixin, UpdateMethod, UpdateMixin
2+
from gitlab.mixins import CRUDMixin, GetMixin, ListMixin, UpdateMethod
33
from gitlab.types import RequiredOptional
44

55
__all__ = [
@@ -14,7 +14,7 @@ class ProjectMergeTrainMergeRequest(RESTObject):
1414
pass
1515

1616

17-
class ProjectMergeTrainMergeRequestManager(GetMixin, UpdateMixin, RESTManager):
17+
class ProjectMergeTrainMergeRequestManager(CRUDMixin, RESTManager):
1818
_path = "/projects/{project_id}/merge_trains/merge_requests"
1919
_obj_cls = ProjectMergeTrainMergeRequest
2020
_from_parent_attrs = {"project_id": "project_id"}

tests/unit/objects/test_merge_trains.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
mr_content = {
1212
"id": 110,
1313
"merge_request": {
14-
"id": 1,
14+
"id": 273,
1515
"iid": 1,
1616
"project_id": 3,
1717
"title": "Test merge train",
@@ -47,7 +47,7 @@
4747
}
4848

4949
merge_train_update = mr_content.copy()
50-
merge_train_update["id"] = 123
50+
merge_train_update["iid"] = 4
5151
merge_train_update["pipeline"]["sha"] = "ef33a3zxc3"
5252

5353

@@ -69,7 +69,7 @@ def resp_merge_trains_merge_request_get():
6969
with responses.RequestsMock() as rsps:
7070
rsps.add(
7171
method=responses.GET,
72-
url="http://localhost/api/v4/projects/1/merge_trains/merge_requests/110",
72+
url="http://localhost/api/v4/projects/1/merge_trains/merge_requests/1",
7373
json=mr_content,
7474
content_type="application/json",
7575
status=200,
@@ -82,7 +82,7 @@ def resp_merge_trains_merge_request_post():
8282
with responses.RequestsMock() as rsps:
8383
rsps.add(
8484
method=responses.POST,
85-
url="http://localhost/api/v4/projects/1/merge_trains/merge_requests/123",
85+
url="http://localhost/api/v4/projects/1/merge_trains/merge_requests/4",
8686
json=[merge_train_update],
8787
content_type="application/json",
8888
status=200,
@@ -96,24 +96,29 @@ def test_list_project_merge_requests(project, resp_list_merge_trains):
9696
assert merge_trains[0].id == mr_content["id"]
9797

9898

99-
def test_merge_trains_status_merge_request_get_status(
99+
def test_merge_trains_status_merge_request(
100100
project, resp_merge_trains_merge_request_get
101101
):
102102
merge_train_mr: ProjectMergeTrainMergeRequest = project.merge_trains.get(
103103
1, lazy=True
104-
).merge_requests.get(110)
104+
).merge_requests.get(1)
105105
assert isinstance(merge_train_mr, ProjectMergeTrainMergeRequest)
106106
assert merge_train_mr.get_id() == 110
107+
assert merge_train_mr.merge_request["iid"] == mr_content["merge_request"]["iid"]
107108
assert merge_train_mr.pipeline.get("status") == mr_content["pipeline"]["status"]
108109

109110

110111
def test_merge_train_add_merge_request(project, resp_merge_trains_merge_request_post):
111112
merge_train: ProjectMergeTrain = project.merge_trains.get(1, lazy=True)
112113
merge_requests_update = merge_train.merge_requests.update(
113-
123, new_data={"sha": "ef33a3zxc3"}
114+
4, new_data={"sha": "ef33a3zxc3"}
114115
)
115116
assert isinstance(merge_train, ProjectMergeTrain)
116117
assert (
117118
merge_requests_update[0]["pipeline"]["sha"]
118119
== merge_train_update["pipeline"]["sha"]
119120
)
121+
assert (
122+
merge_requests_update[0]["merge_request"]["iid"]
123+
== merge_train_update["merge_request"]["iid"]
124+
)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy