📝(api) use DRF constants instead of bare status codes
Replace bare status codes used in tests with DRF status code constants, for more explicit tests.
This commit is contained in:
committed by
Marie
parent
d2bf44d2fd
commit
c6ea7c0831
@@ -2,6 +2,11 @@
|
|||||||
Tests for Teams API endpoint in People's core app: create
|
Tests for Teams API endpoint in People's core app: create
|
||||||
"""
|
"""
|
||||||
import pytest
|
import pytest
|
||||||
|
from rest_framework.status import (
|
||||||
|
HTTP_201_CREATED,
|
||||||
|
HTTP_400_BAD_REQUEST,
|
||||||
|
HTTP_401_UNAUTHORIZED,
|
||||||
|
)
|
||||||
from rest_framework.test import APIClient
|
from rest_framework.test import APIClient
|
||||||
|
|
||||||
from core.factories import IdentityFactory, TeamFactory
|
from core.factories import IdentityFactory, TeamFactory
|
||||||
@@ -20,7 +25,7 @@ def test_api_teams_create_anonymous():
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 401
|
assert response.status_code == HTTP_401_UNAUTHORIZED
|
||||||
assert not Team.objects.exists()
|
assert not Team.objects.exists()
|
||||||
|
|
||||||
|
|
||||||
@@ -42,7 +47,7 @@ def test_api_teams_create_authenticated():
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 201
|
assert response.status_code == HTTP_201_CREATED
|
||||||
team = Team.objects.get()
|
team = Team.objects.get()
|
||||||
assert team.name == "my team"
|
assert team.name == "my team"
|
||||||
assert team.accesses.filter(role="owner", user=user).exists()
|
assert team.accesses.filter(role="owner", user=user).exists()
|
||||||
@@ -61,7 +66,7 @@ def test_api_teams_create_authenticated_slugify_name():
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 201
|
assert response.status_code == HTTP_201_CREATED
|
||||||
team = Team.objects.get()
|
team = Team.objects.get()
|
||||||
assert team.name == "my team"
|
assert team.name == "my team"
|
||||||
assert team.slug == "my-team"
|
assert team.slug == "my-team"
|
||||||
@@ -92,7 +97,7 @@ def test_api_teams_create_authenticated_expected_slug(param):
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 201
|
assert response.status_code == HTTP_201_CREATED
|
||||||
team = Team.objects.get()
|
team = Team.objects.get()
|
||||||
assert team.name == param[0]
|
assert team.name == param[0]
|
||||||
assert team.slug == param[1]
|
assert team.slug == param[1]
|
||||||
@@ -114,5 +119,5 @@ def test_api_teams_create_authenticated_unique_slugs():
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 400
|
assert response.status_code == HTTP_400_BAD_REQUEST
|
||||||
assert response.json()["slug"] == ["Team with this Slug already exists."]
|
assert response.json()["slug"] == ["Team with this Slug already exists."]
|
||||||
|
|||||||
@@ -2,12 +2,16 @@
|
|||||||
Tests for Teams API endpoint in People's core app: delete
|
Tests for Teams API endpoint in People's core app: delete
|
||||||
"""
|
"""
|
||||||
import pytest
|
import pytest
|
||||||
|
from rest_framework.status import (
|
||||||
|
HTTP_204_NO_CONTENT,
|
||||||
|
HTTP_401_UNAUTHORIZED,
|
||||||
|
HTTP_403_FORBIDDEN,
|
||||||
|
HTTP_404_NOT_FOUND,
|
||||||
|
)
|
||||||
from rest_framework.test import APIClient
|
from rest_framework.test import APIClient
|
||||||
from rest_framework_simplejwt.tokens import AccessToken
|
|
||||||
|
|
||||||
from core import factories, models
|
from core import factories, models
|
||||||
|
from core.tests.utils import OIDCToken
|
||||||
from ..utils import OIDCToken
|
|
||||||
|
|
||||||
pytestmark = pytest.mark.django_db
|
pytestmark = pytest.mark.django_db
|
||||||
|
|
||||||
@@ -20,7 +24,7 @@ def test_api_teams_delete_anonymous():
|
|||||||
f"/api/v1.0/teams/{team.id!s}/",
|
f"/api/v1.0/teams/{team.id!s}/",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 401
|
assert response.status_code == HTTP_401_UNAUTHORIZED
|
||||||
assert models.Team.objects.count() == 1
|
assert models.Team.objects.count() == 1
|
||||||
|
|
||||||
|
|
||||||
@@ -39,7 +43,7 @@ def test_api_teams_delete_authenticated_unrelated():
|
|||||||
f"/api/v1.0/teams/{team.id!s}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
f"/api/v1.0/teams/{team.id!s}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 404
|
assert response.status_code == HTTP_404_NOT_FOUND
|
||||||
assert response.json() == {"detail": "Not found."}
|
assert response.json() == {"detail": "Not found."}
|
||||||
assert models.Team.objects.count() == 1
|
assert models.Team.objects.count() == 1
|
||||||
|
|
||||||
@@ -59,7 +63,7 @@ def test_api_teams_delete_authenticated_member():
|
|||||||
f"/api/v1.0/teams/{team.id}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
f"/api/v1.0/teams/{team.id}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 403
|
assert response.status_code == HTTP_403_FORBIDDEN
|
||||||
assert response.json() == {
|
assert response.json() == {
|
||||||
"detail": "You do not have permission to perform this action."
|
"detail": "You do not have permission to perform this action."
|
||||||
}
|
}
|
||||||
@@ -81,7 +85,7 @@ def test_api_teams_delete_authenticated_administrator():
|
|||||||
f"/api/v1.0/teams/{team.id}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
f"/api/v1.0/teams/{team.id}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 403
|
assert response.status_code == HTTP_403_FORBIDDEN
|
||||||
assert response.json() == {
|
assert response.json() == {
|
||||||
"detail": "You do not have permission to perform this action."
|
"detail": "You do not have permission to perform this action."
|
||||||
}
|
}
|
||||||
@@ -103,5 +107,5 @@ def test_api_teams_delete_authenticated_owner():
|
|||||||
f"/api/v1.0/teams/{team.id}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
f"/api/v1.0/teams/{team.id}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 204
|
assert response.status_code == HTTP_204_NO_CONTENT
|
||||||
assert models.Team.objects.exists() is False
|
assert models.Team.objects.exists() is False
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Tests for Teams API endpoint in People's core app: retrieve
|
Tests for Teams API endpoint in People's core app: retrieve
|
||||||
"""
|
"""
|
||||||
import pytest
|
import pytest
|
||||||
|
from rest_framework.status import HTTP_200_OK, HTTP_401_UNAUTHORIZED, HTTP_404_NOT_FOUND
|
||||||
from rest_framework.test import APIClient
|
from rest_framework.test import APIClient
|
||||||
|
|
||||||
from core import factories
|
from core import factories
|
||||||
@@ -15,7 +16,7 @@ def test_api_teams_retrieve_anonymous():
|
|||||||
team = factories.TeamFactory()
|
team = factories.TeamFactory()
|
||||||
response = APIClient().get(f"/api/v1.0/teams/{team.id}/")
|
response = APIClient().get(f"/api/v1.0/teams/{team.id}/")
|
||||||
|
|
||||||
assert response.status_code == 401
|
assert response.status_code == HTTP_401_UNAUTHORIZED
|
||||||
assert response.json() == {
|
assert response.json() == {
|
||||||
"detail": "Authentication credentials were not provided."
|
"detail": "Authentication credentials were not provided."
|
||||||
}
|
}
|
||||||
@@ -35,7 +36,7 @@ def test_api_teams_retrieve_authenticated_unrelated():
|
|||||||
response = APIClient().get(
|
response = APIClient().get(
|
||||||
f"/api/v1.0/teams/{team.id!s}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
f"/api/v1.0/teams/{team.id!s}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
||||||
)
|
)
|
||||||
assert response.status_code == 404
|
assert response.status_code == HTTP_404_NOT_FOUND
|
||||||
assert response.json() == {"detail": "Not found."}
|
assert response.json() == {"detail": "Not found."}
|
||||||
|
|
||||||
|
|
||||||
@@ -55,7 +56,7 @@ def test_api_teams_retrieve_authenticated_related():
|
|||||||
response = APIClient().get(
|
response = APIClient().get(
|
||||||
f"/api/v1.0/teams/{team.id!s}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
f"/api/v1.0/teams/{team.id!s}/", HTTP_AUTHORIZATION=f"Bearer {jwt_token}"
|
||||||
)
|
)
|
||||||
assert response.status_code == 200
|
assert response.status_code == HTTP_200_OK
|
||||||
content = response.json()
|
content = response.json()
|
||||||
assert sorted(content.pop("accesses"), key=lambda x: x["user"]) == sorted(
|
assert sorted(content.pop("accesses"), key=lambda x: x["user"]) == sorted(
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -4,6 +4,13 @@ Tests for Teams API endpoint in People's core app: update
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from rest_framework.status import (
|
||||||
|
HTTP_200_OK,
|
||||||
|
HTTP_400_BAD_REQUEST,
|
||||||
|
HTTP_401_UNAUTHORIZED,
|
||||||
|
HTTP_403_FORBIDDEN,
|
||||||
|
HTTP_404_NOT_FOUND,
|
||||||
|
)
|
||||||
from rest_framework.test import APIClient
|
from rest_framework.test import APIClient
|
||||||
|
|
||||||
from core import factories
|
from core import factories
|
||||||
@@ -24,7 +31,7 @@ def test_api_teams_update_anonymous():
|
|||||||
new_team_values,
|
new_team_values,
|
||||||
format="json",
|
format="json",
|
||||||
)
|
)
|
||||||
assert response.status_code == 401
|
assert response.status_code == HTTP_401_UNAUTHORIZED
|
||||||
assert response.json() == {
|
assert response.json() == {
|
||||||
"detail": "Authentication credentials were not provided."
|
"detail": "Authentication credentials were not provided."
|
||||||
}
|
}
|
||||||
@@ -53,7 +60,7 @@ def test_api_teams_update_authenticated_unrelated():
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 404
|
assert response.status_code == HTTP_404_NOT_FOUND
|
||||||
assert response.json() == {"detail": "Not found."}
|
assert response.json() == {"detail": "Not found."}
|
||||||
|
|
||||||
team.refresh_from_db()
|
team.refresh_from_db()
|
||||||
@@ -81,7 +88,7 @@ def test_api_teams_update_authenticated_members():
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 403
|
assert response.status_code == HTTP_403_FORBIDDEN
|
||||||
assert response.json() == {
|
assert response.json() == {
|
||||||
"detail": "You do not have permission to perform this action."
|
"detail": "You do not have permission to perform this action."
|
||||||
}
|
}
|
||||||
@@ -108,7 +115,7 @@ def test_api_teams_update_authenticated_administrators():
|
|||||||
format="json",
|
format="json",
|
||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
assert response.status_code == 200
|
assert response.status_code == HTTP_200_OK
|
||||||
|
|
||||||
team.refresh_from_db()
|
team.refresh_from_db()
|
||||||
final_values = serializers.TeamSerializer(instance=team).data
|
final_values = serializers.TeamSerializer(instance=team).data
|
||||||
@@ -139,7 +146,7 @@ def test_api_teams_update_authenticated_owners():
|
|||||||
format="json",
|
format="json",
|
||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
assert response.status_code == 200
|
assert response.status_code == HTTP_200_OK
|
||||||
|
|
||||||
team.refresh_from_db()
|
team.refresh_from_db()
|
||||||
team_values = serializers.TeamSerializer(instance=team).data
|
team_values = serializers.TeamSerializer(instance=team).data
|
||||||
@@ -172,7 +179,7 @@ def test_api_teams_update_administrator_or_owner_of_another():
|
|||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 404
|
assert response.status_code == HTTP_404_NOT_FOUND
|
||||||
assert response.json() == {"detail": "Not found."}
|
assert response.json() == {"detail": "Not found."}
|
||||||
|
|
||||||
team.refresh_from_db()
|
team.refresh_from_db()
|
||||||
@@ -201,7 +208,7 @@ def test_api_teams_update_existing_slug_should_return_error():
|
|||||||
format="json",
|
format="json",
|
||||||
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
HTTP_AUTHORIZATION=f"Bearer {jwt_token}",
|
||||||
)
|
)
|
||||||
assert response.status_code == 400
|
assert response.status_code == HTTP_400_BAD_REQUEST
|
||||||
assert response.json()["slug"] == ["Team with this Slug already exists."]
|
assert response.json()["slug"] == ["Team with this Slug already exists."]
|
||||||
# Both teams names and slugs should be unchanged
|
# Both teams names and slugs should be unchanged
|
||||||
assert my_team.name == "New team"
|
assert my_team.name == "New team"
|
||||||
|
|||||||
Reference in New Issue
Block a user