Django单元测试功能

时间:2015-07-17 09:15:42

标签: django unit-testing

我需要测试用户是否处于活动状态。我有这个功能:

Service.py

@validate_input({
    'code': {'required': True}
})
def signup_complete(self, data):
    try:
        code = VerificationCode.objects.select_related('user').get(code=data["code"],
                                                                   code_type="registration",
                                                                   expiration_date__gt=timezone.now())
    except VerificationCode.DoesNotExist:
        raise NotFound(_(u"Неверный код восстановленыя"), 1001)
    user = code.user
    user.is_active = True
    user.save()
    code.delete()

我试着为这个函数写一个测试,但我不知道我需要发送什么参数。

Test.py

def test_signup_complete(self):
    user = SiteUser.objects.get(email="Test@gmail.com")
    code = VerificationCode.objects.get_or_create(user=user, code_type="registration", code=user.code)
    UserService(user).signup_complete()

    self.assertEqual(user.is_active, True)

1 个答案:

答案 0 :(得分:1)

您可以重现用户注册和激活所需的所有步骤。访问注册页面,发送填写的表单,检查带有激活码的电子邮件等。使用这种方法(与您当前的代码相比更加可靠),您可以获得与真实用户获取确认代码相同的方式(例如,来自个人资料激活电子邮件)。