2008-08-01 04:47:53 +08:00
|
|
|
TOKEN_GENERATOR_TESTS = """
|
|
|
|
>>> from django.contrib.auth.models import User, AnonymousUser
|
|
|
|
>>> from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
|
|
|
>>> from django.conf import settings
|
|
|
|
>>> u = User.objects.create_user('tokentestuser', 'test2@example.com', 'testpw')
|
|
|
|
>>> p0 = PasswordResetTokenGenerator()
|
|
|
|
>>> tk1 = p0.make_token(u)
|
|
|
|
>>> p0.check_token(u, tk1)
|
|
|
|
True
|
|
|
|
|
2009-04-02 05:25:24 +08:00
|
|
|
>>> u = User.objects.create_user('comebackkid', 'test3@example.com', 'testpw')
|
|
|
|
>>> p0 = PasswordResetTokenGenerator()
|
|
|
|
>>> tk1 = p0.make_token(u)
|
|
|
|
>>> reload = User.objects.get(username='comebackkid')
|
|
|
|
>>> tk2 = p0.make_token(reload)
|
|
|
|
>>> tk1 == tk2
|
|
|
|
True
|
|
|
|
|
2008-08-01 04:47:53 +08:00
|
|
|
Tests to ensure we can use the token after n days, but no greater.
|
|
|
|
Use a mocked version of PasswordResetTokenGenerator so we can change
|
|
|
|
the value of 'today'
|
|
|
|
|
|
|
|
>>> class Mocked(PasswordResetTokenGenerator):
|
|
|
|
... def __init__(self, today):
|
|
|
|
... self._today_val = today
|
|
|
|
... def _today(self):
|
|
|
|
... return self._today_val
|
|
|
|
|
|
|
|
>>> from datetime import date, timedelta
|
|
|
|
>>> p1 = Mocked(date.today() + timedelta(settings.PASSWORD_RESET_TIMEOUT_DAYS))
|
|
|
|
>>> p1.check_token(u, tk1)
|
|
|
|
True
|
|
|
|
>>> p2 = Mocked(date.today() + timedelta(settings.PASSWORD_RESET_TIMEOUT_DAYS + 1))
|
|
|
|
>>> p2.check_token(u, tk1)
|
|
|
|
False
|
|
|
|
|
|
|
|
"""
|