“blank=False”字段的Django单元测试引发断言错误

2024-04-19 04:37:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型字段,即descrition,该字段的约束条件是

description = models.TextField(
    verbose_name=_('Description'),
    help_text=_('Description of the requirement'),
    blank=True, default=''
)

{cd2>不能是空白的水平。但是我想为此编写一个单元测试,我已经编写了一个单元测试,它引发了错误AssertionError: ValidationError not raised

我的测试代码(请避免使用其他字段和方法,我没有详细提及这些字段和方法,因为它们目前不相关)

^{pr2}$

运行此测试后,显示以下错误:

FAIL: test_requirement_header_without_description     (requirements.tests.RequirementHeaderTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "/home/equirements/tests.py", line 25, in test_requirement_header_without_description
    requirement_status=self.requirement_status,
    AssertionError: ValidationError not raised

我的问题是,如何为来自表单级别的blank=False的字段编写单元测试。在

更新

这是相关的方法

def create_requirement_header(self,  user_id=None,anonymous_user_email_id=None,session=None,description='',requirement_status=None):
    # getting Customer object from id
    user = None
    if user_id is not None:
        try:
            user = Customer.objects.get(pk=user_id)
        except Customer.DoesNotExist:
            raise ObjectDoesNotExist('User was not found')

    # getting AnonymousUserEmail object from id
    anonymous_user_email = None
    if anonymous_user_email_id is not None:
        try:
            anonymous_user_email = AnonymousUserEmail.objects.get(pk=anonymous_user_email_id)
        except AnonymousUserEmail.DoesNotExist:
            raise ObjectDoesNotExist('AnonymousUserEmail object was not found')  # Need to re-think about message

    requirement_header = RequirementHeader.objects.create_requirement_header(user=user,
                                                                             anonymous_email=anonymous_user_email,
                                                                             session=session,
                                                                             description=description,
                                                                             requirement_status=requirement_status)
    return {
        "id": requirement_header.id,
        "description": requirement_header.description,
        "status": requirement_header.requirement_status
    }

Tags: 方法noneidemailsessionstatusnotcustomer