#python #django #serialization #django-rest-framework #django-unittest
Вопрос:
Я пытаюсь выполнить модульный тест для функции на моем веб-сайте, при котором пользователь загружает файл JSON, и я проверяю, действителен ли файл JSON, используя сериализацию и схему JSON. При запуске следующего тестового кода я продолжаю получать ошибку утверждения.
serializer.py
class Serializer(serializers.Serializer):
file = serializers.FileField(required=True)
format = serializers.CharField(required=True)
def validate(self, data):
is_valid, message = Validation().is_valid(
json.loads(data.read()))
if (not (is_valid)):
raise serializers.ValidationError(message)
tests.py
class Validation(TestCase):
def test_valid_serializer(self):
file_mock = mock.MagicMock(spec=File)
file_mock.name = 'mock.json'
file_mock.content = {
'mockData': [{
"id": 1,
"name": "blue",
}]
}
serializer_class = Serializer(data=file_mock.content)
assert serializer_class.is_valid()
assert serializer_class.errors == {}
Комментарии:
1. Можете ли вы поделиться этой ошибкой? Разве так не должно быть
Serializer(data={'file': file_mock, 'format': 'json'})
?
Ответ №1:
Может быть, вам нужно SimpleUploadedFile
завернуть file_mock
?
from django.core.files.uploadedfile import SimpleUploadedFile