Ошибка утверждения модульного теста Django для сериализации

#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