【问题标题】:Django Unit Test Assertion Error for Serialization用于序列化的 Django 单元测试断言错误
【发布时间】:2021-12-05 08:28:51
【问题描述】:

我正在尝试对我网站中的一项功能执行单元测试,用户上传一个 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 == {}

【问题讨论】:

  • 你能分享一下错误吗?不应该是Serializer(data={'file': file_mock, 'format': 'json'})吗?

标签: python django serialization django-rest-framework django-unittest


【解决方案1】:

也许您需要SimpleUploadedFile 来包装file_mock

from django.core.files.uploadedfile import SimpleUploadedFile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2018-02-20
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多