【问题标题】:Django Unittest for form with password带有密码的表单的 Django Unittest
【发布时间】:2013-06-19 15:51:49
【问题描述】:

我想在 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')

【问题讨论】:

    标签: django django-unittest


    【解决方案1】:

    在这种情况下,您只需要使用 data 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')
    

    【讨论】:

    • Initial 用于设置表单字段的默认值。
    猜你喜欢
    • 2015-05-03
    • 2013-11-30
    • 2019-06-11
    • 2015-03-02
    • 2016-08-29
    • 2012-07-18
    • 2020-12-08
    • 1970-01-01
    • 2013-06-04
    相关资源
    最近更新 更多