@@ -86,12 +86,42 @@ def test_get_projects_paginated(load_json, testspace_api, requests_mock):
8686 json = load_json [:1 ],
8787 headers = {"link" : ", " .join ([links_string_first , links_string_last ])},
8888 )
89- response_json = testspace_api .get_projects ()
89+ response_json = testspace_api .get_projects (limit = None )
9090
9191 project_names = [project ["name" ] for project in response_json ]
9292 assert testspace_api .project in project_names
9393
9494
95+ @pytest .mark .parametrize ("load_json" , ["projects.json" ], indirect = True )
96+ def test_get_projects_paginated_limited (load_json , testspace_api , requests_mock ):
97+ url = testspace_api .url
98+ testspace_url = "https://{}/api/projects" .format (url )
99+
100+ links_string_first = '<{}?page={}>; rel="{}"' .format (testspace_url , 1 , "first" )
101+ links_string_next = '<{}?page={}>; rel="{}"' .format (testspace_url , 2 , "next" )
102+ links_string_last = '<{}?page={}>; rel="{}"' .format (testspace_url , 2 , "last" )
103+
104+ requests_mock .get (
105+ "/api/projects" ,
106+ json = load_json [1 :],
107+ headers = {
108+ "link" : ", " .join (
109+ [links_string_first , links_string_next , links_string_last ]
110+ )
111+ },
112+ complete_qs = True ,
113+ )
114+ requests_mock .get (
115+ "/api/projects?page=2" ,
116+ json = load_json [:1 ],
117+ headers = {"link" : ", " .join ([links_string_first , links_string_last ])},
118+ )
119+ num_projects = 1
120+ response_json = testspace_api .get_projects (limit = num_projects )
121+
122+ assert len (response_json ) == num_projects
123+
124+
95125@pytest .mark .parametrize ("load_json" , ["projects.json" ], indirect = True )
96126def test_get_project_name (load_json , testspace_api , requests_mock ):
97127 project = testspace_api .project
0 commit comments