2015-04-30 69 views
0

我有一个用户提交的表单,它在后端有很多处理。在这种处理,我创建了一个词典:单元测试Django BoundField

def function_that_returns_form_data(form, ...): 
    form_data = {'account' : form['account'], ...} 
    return form_data 

我的单元测试来测试它返回字典中的函数看起来是这样的:除了“帐户”

self.form = PaymentForm(data=...) 
returned_dict = function_that_returns_form_data(self.form, ...) 
expected_dict = {'account' : self.form['account'], ...} 

self.assertEqual(expected_dict, function_returning_form_data) 

所有在returned_dict项目和expected_dict比赛,这将导致一个错误:

AssertionError: Lists differ: ... First differing element 0: {'account': <django.forms.forms.BoundField object at 0x043E6F50>, ... {'account': <django.forms.forms.BoundField object at 0x043E64B0>, ...

我敢肯定的是,这些对象相同的,我想传递的对象,而不是单独拉出所有的领域。我如何让Django使用正常比较(字段的值)来测试绑定字段,而不是比较内存中对象的位置?

回答

0

请求self.form给我乱码,但self.form__dict__['data']['field_i_want']的作品。

我不知道为什么我需要以这种冗长的方式访问绑定形式的字段。