【发布时间】:2016-07-07 17:21:02
【问题描述】:
我在我的 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
【问题讨论】:
标签: django unit-testing django-rest-framework