我正致力于编写test_templates
,以便我可以非常快速地编写测试,因为我意识到我正在使用不同的变量复制相同的代码。但是我遇到了一个问题:
# path of view
# '/app/view/path/'
view_name = 'service:create_employee_profile'
# valid field values to test form success.
valid_values = {
'first_name': 'First',
'last_name': 'Last',
}
# Search criteria for Model 'get' and 'filter'
# Model.objects.get(field=value)
# Model.objects.get(eval(model_criteria))
model_criteria = 'first_name="First"'
"""
TESTS: Submitting forms
"""
# TEST: View saves valid object.
def test_view_saves_valid_object(self):
response = self.client.post(
reverse(view_name), valid_values)
self.assertTrue(Model.objects.filter(eval(model_criteria)).exists())
我以为我被eval()
设置了,直到我很快发现它不喜欢=
。我尝试为'first_name="First"'
使用2个不同的变量,但模型永远不会找到variable='field_name'
之外的字段。
这些模板帮助我测试多个视图,只需向它们添加一些信息,并且由于模板中的多个测试需要检索模型的实例,我试图在顶部设置一个将运行所有关联的变量试验。
答案 0 :(得分:1)
您可以改用词典:
VPNService
使用model_criteria = {'first_name': "First"}
传递filter()
参数时,只需将其解压缩:
**