diff --git a/utests/test_api.py b/utests/test_api.py index cd1cf74..d3b90b1 100644 --- a/utests/test_api.py +++ b/utests/test_api.py @@ -157,6 +157,43 @@ class BaseCrud(unittest.TestCase): assert isinstance(movies["movies"], list) assert movies["count"] == primary_count + N + def test_list_movies_pagination_back_forth(self): + response = client.get("/movies/") + assert response.status_code == 200 + # assert response.json() == [] + primary_count = response.json()["count"] + + N = 10 + names = [] + for _ in range(N): + name = rand_name() + + names.append(name) + self.create_payload["title"] = name + response = client.post("/movies/", json=self.create_payload) + assert response.status_code == 200 + + movies = client.get("/movies/").json() + first, *,last = movies['movies'] + + + pagenum = 1 + pagesize = 5 + while current_movies + + sliced_movies = client.get("/movies/").json()["movies"][ + (pagenum - 1) * pagesize : pagenum * pagesize + ] + + sliced_titles = [m["title"] for m in sliced_movies] + + movies_paginate = client.get( + f"/movies/?pagenum={pagenum}&pagesize={pagesize}" + ).json()["movies"] + + paginate_titles = [m["title"] for m in movies_paginate] + + assert sliced_titles == paginate_titles def test_list_movies_pagination(self): response = client.get("/movies/")