Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions api/api/serializers/media_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#######################



class PaginatedRequestSerializer(Serializer):
"""This serializer passes pagination parameters from the query string."""

Expand Down
37 changes: 36 additions & 1 deletion api/test/unit/serializers/test_media_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
from unittest.mock import MagicMock, patch

import pytest
import uuid

from api.constants import sensitivity
from api.serializers.audio_serializers import AudioSearchRequestSerializer
from api.serializers.image_serializers import ImageSearchRequestSerializer
from api.serializers.media_serializers import MediaSearchRequestSerializer
from api.serializers.media_serializers import MediaSearchRequestSerializer, MediaReportRequestSerializer


@pytest.fixture
Expand Down Expand Up @@ -240,3 +241,37 @@ def test_report_serializer_accepts_mature_reason(media_type_config):
serializer.is_valid(raise_exception=True)

assert serializer.validated_data["reason"] == "mature"





@pytest.mark.django_db
@pytest.mark.parametrize(
"reported_data, expected_is_valid",
[
({"reason": "mature"}, True),
({"reason": "other"}, False),
({"reason": "other", "description": "less than 20 ch"}, False),
({"reason": "other", "description": "I think its absolutely more than 20 ch and long enough"}, True),
({"reason": "sensitive", }, True),


]
)
def test_media_report_request_serializer_validation(media_type_config, reported_data, expected_is_valid):
media = media_type_config.model_factory.create()

reported_data_with_id = reported_data.copy()
reported_data_with_id["identifier"] = media.identifier

serializer = media_type_config.report_serializer(data=reported_data_with_id)

if not serializer.is_valid() and expected_is_valid:
print(serializer.errors)

assert serializer.is_valid() == expected_is_valid

if expected_is_valid and reported_data.get("reason") == "sensitive":
assert getattr(serializer, "validated_data", None) is not None
assert serializer.validated_data["reason"] == "mature" # type: ignore
Loading