【问题标题】:Django Rest Framework APITestCase does not use JSON datatypes for all fieldsDjango Rest Framework APITestCase 不为所有字段使用 JSON 数据类型
【发布时间】:2021-04-20 13:46:05
【问题描述】:

使用 DRF 的 APITestCase,我希望将 API 测试的结果序列化为 JSON 数据类型。具有 size = decimal.Decimal('20.0') 属性的对象通过 API 端点正确发送为 size: 20.0COERCE_DECIMAL_TO_STRING 参数设置为 True)。

但是,在使用 APITestCase 测试端点时,会保留原始数据类型。 APIClient.get(url).response.data.get("size").__class__ = 十进制.十进制

其他复杂类型也是如此。

这是为什么?是否可以更改为查看 API 客户端会收到什么?

【问题讨论】:

  • 能否添加最小测试用例和相关代码sn-p,可以用来重现行为?

标签: django rest django-rest-framework


【解决方案1】:

我认为您可能需要调用响应的 .json() 方法

from rest_framework.test import APITestCase


class DRFTest(APITestCase):
    def test_decimal(self):
        res = self.client.get("some/-url")
        self.assertEqual(
            res.json()["size"],
            20.0
        )

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多