Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7966584

Browse files
authored
Merge pull request#1915 from kinbald/test-report-summary
feat: add support for test report summary
2 parentsb37fc41 +2828b10 commit7966584

File tree

3 files changed

+98
-1
lines changed

3 files changed

+98
-1
lines changed

‎docs/gl_objects/pipelines_and_jobs.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,3 +367,27 @@ Examples
367367
Get the test report for a pipeline::
368368

369369
test_report = pipeline.test_report.get()
370+
371+
Pipeline test report summary
372+
============================
373+
374+
Get a pipeline’s test report summary.
375+
376+
Reference
377+
---------
378+
379+
* v4 API
380+
381+
+:class:`gitlab.v4.objects.ProjectPipelineTestReportSummary`
382+
+:class:`gitlab.v4.objects.ProjectPipelineTestReportSummaryManager`
383+
+:attr:`gitlab.v4.objects.ProjectPipeline.test_report_summary`
384+
385+
* GitLab API: https://docs.gitlab.com/ee/api/pipelines.html#get-a-pipelines-test-report-summary
386+
387+
Examples
388+
--------
389+
390+
Get the test report summary for a pipeline::
391+
392+
test_report_summary = pipeline.test_report_summary.get()
393+

‎gitlab/v4/objects/pipelines.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
"ProjectPipelineScheduleManager",
3636
"ProjectPipelineTestReport",
3737
"ProjectPipelineTestReportManager",
38+
"ProjectPipelineTestReportSummary",
39+
"ProjectPipelineTestReportSummaryManager",
3840
]
3941

4042

@@ -52,6 +54,7 @@ class ProjectPipeline(RefreshMixin, ObjectDeleteMixin, RESTObject):
5254
bridges:"ProjectPipelineBridgeManager"
5355
jobs:"ProjectPipelineJobManager"
5456
test_report:"ProjectPipelineTestReportManager"
57+
test_report_summary:"ProjectPipelineTestReportSummaryManager"
5558
variables:"ProjectPipelineVariableManager"
5659

5760
@cli.register_custom_action("ProjectPipeline")
@@ -251,3 +254,20 @@ def get(
251254
self,id:Optional[Union[int,str]]=None,**kwargs:Any
252255
)->Optional[ProjectPipelineTestReport]:
253256
returncast(Optional[ProjectPipelineTestReport],super().get(id=id,**kwargs))
257+
258+
259+
classProjectPipelineTestReportSummary(RESTObject):
260+
_id_attr=None
261+
262+
263+
classProjectPipelineTestReportSummaryManager(GetWithoutIdMixin,RESTManager):
264+
_path="/projects/{project_id}/pipelines/{pipeline_id}/test_report_summary"
265+
_obj_cls=ProjectPipelineTestReportSummary
266+
_from_parent_attrs= {"project_id":"project_id","pipeline_id":"id"}
267+
268+
defget(
269+
self,id:Optional[Union[int,str]]=None,**kwargs:Any
270+
)->Optional[ProjectPipelineTestReportSummary]:
271+
returncast(
272+
Optional[ProjectPipelineTestReportSummary],super().get(id=id,**kwargs)
273+
)

‎tests/unit/objects/test_pipelines.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
importpytest
55
importresponses
66

7-
fromgitlab.v4.objectsimportProjectPipeline,ProjectPipelineTestReport
7+
fromgitlab.v4.objectsimport (
8+
ProjectPipeline,
9+
ProjectPipelineTestReport,
10+
ProjectPipelineTestReportSummary,
11+
)
812

913
pipeline_content= {
1014
"id":46,
@@ -66,6 +70,32 @@
6670
}
6771

6872

73+
test_report_summary_content= {
74+
"total": {
75+
"time":1904,
76+
"count":3363,
77+
"success":3351,
78+
"failed":0,
79+
"skipped":12,
80+
"error":0,
81+
"suite_error":None,
82+
},
83+
"test_suites": [
84+
{
85+
"name":"test",
86+
"total_time":1904,
87+
"total_count":3363,
88+
"success_count":3351,
89+
"failed_count":0,
90+
"skipped_count":12,
91+
"error_count":0,
92+
"build_ids": [66004],
93+
"suite_error":None,
94+
}
95+
],
96+
}
97+
98+
6999
@pytest.fixture
70100
defresp_get_pipeline():
71101
withresponses.RequestsMock()asrsps:
@@ -118,6 +148,19 @@ def resp_get_pipeline_test_report():
118148
yieldrsps
119149

120150

151+
@pytest.fixture
152+
defresp_get_pipeline_test_report_summary():
153+
withresponses.RequestsMock()asrsps:
154+
rsps.add(
155+
method=responses.GET,
156+
url="http://localhost/api/v4/projects/1/pipelines/1/test_report_summary",
157+
json=test_report_summary_content,
158+
content_type="application/json",
159+
status=200,
160+
)
161+
yieldrsps
162+
163+
121164
deftest_get_project_pipeline(project,resp_get_pipeline):
122165
pipeline=project.pipelines.get(1)
123166
assertisinstance(pipeline,ProjectPipeline)
@@ -144,3 +187,13 @@ def test_get_project_pipeline_test_report(project, resp_get_pipeline_test_report
144187
assertisinstance(test_report,ProjectPipelineTestReport)
145188
asserttest_report.total_time==5
146189
asserttest_report.test_suites[0]["name"]=="Secure"
190+
191+
192+
deftest_get_project_pipeline_test_report_summary(
193+
project,resp_get_pipeline_test_report_summary
194+
):
195+
pipeline=project.pipelines.get(1,lazy=True)
196+
test_report_summary=pipeline.test_report_summary.get()
197+
assertisinstance(test_report_summary,ProjectPipelineTestReportSummary)
198+
asserttest_report_summary.total["count"]==3363
199+
asserttest_report_summary.test_suites[0]["name"]=="test"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp