Skip to content

Commit

Permalink
fix: Polish error handling for unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
novakzaballa committed May 24, 2024
1 parent 3a9c6dc commit a811fdc
Showing 1 changed file with 11 additions and 22 deletions.
33 changes: 11 additions & 22 deletions api/tests/unit/integrations/github/test_unit_github_views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import json
from typing import Any

import pytest
import requests
Expand Down Expand Up @@ -891,17 +892,17 @@ def test_view(request):


@pytest.mark.parametrize(
"page, page_size, is_invalid_page",
"page, page_size, error_detail",
[
(
1,
103,
False,
"Failed to retrieve GitHub repositories. Error: Page size must be an integer between 1 and 100",
),
(
0,
100,
True,
"Failed to retrieve GitHub repositories. Error: Page must be greater or equal than 1",
),
],
)
Expand All @@ -912,7 +913,7 @@ def test_send_the_invalid_number_page_or_page_size_param_returns_400(
github_repository: GithubRepository,
page: int,
page_size: int,
is_invalid_page: bool,
error_detail: str,
) -> None:
# Given
data: dict[str, str | int] = {
Expand All @@ -930,28 +931,21 @@ def test_send_the_invalid_number_page_or_page_size_param_returns_400(
# Then
assert response.status_code == status.HTTP_400_BAD_REQUEST
response_json = response.json()
if is_invalid_page:
assert response_json == {
"detail": "Failed to retrieve GitHub repositories. Error: Page must be greater or equal than 1"
}
else:
assert response_json == {
"detail": "Failed to retrieve GitHub repositories. Error: Page size must be an integer between 1 and 100"
}
assert response_json == {"detail": error_detail}


@pytest.mark.parametrize(
"page, page_size, is_invalid_page",
"page, page_size, error_response",
[
(
1,
"string",
False,
{"error": {"page_size": ["A valid integer is required."]}},
),
(
"string",
100,
True,
{"error": {"page": ["A valid integer is required."]}},
),
],
)
Expand All @@ -962,7 +956,7 @@ def test_send_the_invalid_type_page_or_page_size_param_returns_400(
github_repository: GithubRepository,
page: int,
page_size: int,
is_invalid_page: bool,
error_response: dict[str, Any],
) -> None:
# Given
data: dict[str, str | int] = {
Expand All @@ -980,9 +974,4 @@ def test_send_the_invalid_type_page_or_page_size_param_returns_400(
# Then
assert response.status_code == status.HTTP_400_BAD_REQUEST
response_json = response.json()
if is_invalid_page:
assert response_json == {"error": {"page": ["A valid integer is required."]}}
else:
assert response_json == {
"error": {"page_size": ["A valid integer is required."]}
}
assert response_json == error_response

0 comments on commit a811fdc

Please sign in to comment.