С помощью следующего теста токен не считается действительным. В моем ручном тесте он работает, поэтому я пропускаю что-то в том, как создается пароль. Думаю.Тестирование Django 1-5 Сброс формы пароля - как сгенерировать токен для теста?
def test_actual_reset_password(self):
new_password = "myNewPassword012*"
token_generator = PasswordResetTokenGenerator()
user = UserFactory.create()
token = token_generator.make_token(user=user)
response = self.assert_page_loading(path="/forgot-password/reset/{0}/".format(token))
print response
# That loads the page with the error message mentioning that the token was already used
# So I cannot carry on:
form = response.form
form['new_password1'] = new_password
form['new_password2'] = new_password
response = form.submit()
В исходном коде Джанго, в PasswordResetForm, я нашел этот код; Я не могу видеть, что разница:
def save(self, ..., token_generator=default_token_generator, ...):
"""
Generates a one-use only link for resetting password and sends to the
user.
"""
...
for user in self.users_cache:
...
c = {
...
'token': token_generator.make_token(user),
...
}
...
send_mail(subject, email, from_email, [user.email])
на 'self.assertEqual (LEN (mail.outbox), 1)'. Из какого модуля приходит «почта»? –
нашел его 'django.core.mail' –
Это могло измениться в 1.8. Я получаю ключевую ошибку в response.context [0]? ['token'] – vladblindu