def test_wrong_page_size(self, session, page_number, page_size): query = session.query(User) with pytest.raises(InvalidPage) as err: apply_pagination(query, page_number, page_size) expected_error = 'Page size should not be negative: {}'.format( page_size) assert error_value(err) == expected_error
def test_wrong_page_number_with_no_results(self, session, page_number, page_size): query = session.query(User) with pytest.raises(InvalidPage) as err: apply_pagination(query, page_number, page_size) expected_error = 'Page number should be positive: {}'.format( page_number) assert error_value(err) == expected_error
def test_page_size_zero(self, session, page_number): query = session.query(User) page_size = 0 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=page_number, page_size=0, num_pages=0, total_results=8) == pagination result = paginated_query.all() assert len(result) == 0
def test_page_number_greater_than_one(self, session, page_number): query = session.query(User) page_size = None paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=page_number, page_size=8, num_pages=1, total_results=8) == pagination result = paginated_query.all() assert len(result) == 0
def test_page_size_and_page_number_provided(self, session): query = session.query(User) page_size = 2 page_number = 1 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=1, page_size=2, num_pages=0, total_results=0) == pagination result = paginated_query.all() assert len(result) == 0
def test_get_individual_record(self, session): query = session.query(User) page_size = 1 page_number = 5 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=5, page_size=1, num_pages=8, total_results=8) == pagination result = paginated_query.all() assert len(result) == 1 assert result[0].id == 5
def test_page_number_and_page_size_provided(self, session): query = session.query(User) page_size = 2 page_number = 3 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=3, page_size=2, num_pages=4, total_results=8) == pagination result = paginated_query.all() assert len(result) == 2 assert result[0].id == 5 assert result[1].id == 6
def test_get_first_page(self, session): query = session.query(User) page_size = 2 page_number = 1 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=1, page_size=2, num_pages=4, total_results=8) == pagination result = paginated_query.all() assert len(result) == 2 assert result[0].id == 1 assert result[1].id == 2
def test_first_page(self, session): query = session.query(User) page_size = None page_number = 1 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=1, page_size=8, num_pages=1, total_results=8) == pagination result = paginated_query.all() assert len(result) == 8 for i in range(8): assert result[i].id == i + 1
def test_last_incomplete_page(self, session): query = session.query(User) page_size = 5 page_number = 2 paginated_query, pagination = apply_pagination(query, page_number, page_size) assert query != paginated_query assert Pagination(page_number=2, page_size=5, num_pages=2, total_results=8) == pagination result = paginated_query.all() assert len(result) == 3 assert result[0].id == 6 assert result[1].id == 7 assert result[2].id == 8