|
18 | 18 |
|
19 | 19 | importpickle
|
20 | 20 | importwarnings
|
| 21 | +fromcopyimportdeepcopy |
21 | 22 |
|
22 | 23 | importpytest
|
23 | 24 | importresponses
|
@@ -104,6 +105,35 @@ def test_gitlab_build_list(gl, resp_page_1, resp_page_2):
|
104 | 105 | asserttest_list[1]["c"]=="d"
|
105 | 106 |
|
106 | 107 |
|
| 108 | +def_strip_pagination_headers(response): |
| 109 | +""" |
| 110 | + https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers |
| 111 | + """ |
| 112 | +stripped=deepcopy(response) |
| 113 | + |
| 114 | +delstripped["headers"]["X-Total-Pages"] |
| 115 | +delstripped["headers"]["X-Total"] |
| 116 | + |
| 117 | +returnstripped |
| 118 | + |
| 119 | + |
| 120 | +@pytest.mark.xfail(reason="See #1686") |
| 121 | +@responses.activate |
| 122 | +deftest_gitlab_build_list_missing_headers(gl,resp_page_1,resp_page_2): |
| 123 | +stripped_page_1=_strip_pagination_headers(resp_page_1) |
| 124 | +stripped_page_2=_strip_pagination_headers(resp_page_2) |
| 125 | + |
| 126 | +responses.add(**stripped_page_1) |
| 127 | +obj=gl.http_list("/tests",as_list=False) |
| 128 | +assertlen(obj)==0# Lazy generator has no knowledge of total items |
| 129 | +assertobj.total_pagesisNone |
| 130 | +assertobj.totalisNone |
| 131 | + |
| 132 | +responses.add(**stripped_page_2) |
| 133 | +test_list=list(obj) |
| 134 | +assertlen(test_list)==2# List has total items after making the API calls |
| 135 | + |
| 136 | + |
107 | 137 | @responses.activate
|
108 | 138 | deftest_gitlab_all_omitted_when_as_list(gl,resp_page_1,resp_page_2):
|
109 | 139 | responses.add(**resp_page_1)
|
|