django - 在 Django Rest Framework 和单元测试中使用嵌套对象

标签 django unit-testing django-rest-framework

我在 Django Rest Framework 端点上编写了几个单元测试,没有任何问题,直到我尝试在 POST 请求中传递嵌套对象:

class BookTestCase(APIVersion, APITestCase):
    def setUp(self):
        self.url = self.reverse_with_get_params('book')
        self.user = CustomerFactory.create().user
        self.base_data = {"foo": "bar",
                          "credit_card": {"card_number": "1234567812345678",
                                          "expiration_date": "1116",
                                          "security_code": "359"},
                          "foo2": "bar2"}

    def test_book(self):
        add_token_to_user(self.user, self.client)

        response = self.client.post(self.url, self.base_data)

        self.assertEqual(response.status_code, 200)

然后,一开始就用 pdb.set_trace() 运行相关的 web 服务,这里是 request.DATA 的内容:
<QueryDict: {u'foo': [u'bar'],
             u'credit_card': [u'expiration_date', u'security_code', u'card_number'],
             u'foo2': [u'bar2']}>

如您所见,每个 level1 对象都被正确填充,但信用卡内容已消失。

任何想法?谢谢!

注意:Django 1.6/Rest Framework 2

最佳答案

您必须更改为您的电话后格式。试试 format='json'

response = self.client.post(self.url, self.base_data, format='json')

关于django - 在 Django Rest Framework 和单元测试中使用嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126991/

相关文章:

java - 布局充气模拟问题

python - 使用 Django REST Framework 的 TokenAuthentication 查询字符串中的 token

python - 如何在序列化器中查找元组?

python - Django:如何正确制作购物车? (数组字符串字段)

java - Mockito 使用匹配器进行 stub

java - 设置后备存储位置

Django 属性错误 'datetime.timedelta' 对象没有属性 'decode'

django - 修改django中的数据库

Django Admin 样式表不会加载到生产服务器上

java - Django 中的 Web 服务