用于密码表单的Django Unittest

时间:2013-06-19 15:51:50

标签: django django-unittest

我想在django中创建一个单元测试,测试表单,同时将一些初始数据传递给它,看看它是有效还是无效。问题是框​​架不允许你将初始值设置为密码字段,除了子类化之外还有其他任何方法吗(我想避免...仅用于密码字段)?我的代码如下。

def test_new_user_joining(self):
    form_data = {
        'full_name': #invalid value,
        'email': 'test_email@gmail.com',
        'password': 'password'
    }
    form = SignupForm(initial=form_data)
    if form.is_valid():
        self.fail('Form should not be valid')

    form_data['full_name'] = # valid value
    form = SignupForm(initial=form_data)
    if not form.is_valid():
        self.fail('Form should be valid')

1 个答案:

答案 0 :(得分:3)

在这种情况下,您只需使用数据 arg而不是 initial

def test_new_user_joining(self):
    form_data = {
        'full_name': #invalid value,
        'email': 'test_email@gmail.com',
        'password': 'password'
    }
    form = SignupForm(data=form_data)
    if form.is_valid():
        self.fail('Form should not be valid')

    form_data['full_name'] = # valid value
    form = SignupForm(data=form_data)
    if not form.is_valid():
        self.fail('Form should be valid')