Я пишу тесты для своего пользовательского представления проверки, и я столкнулся с проблемой, которую пока не знаю, как ее решить.Итак, вот представление, которое я тестирую:
def verify(request, uidb64, token):
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user, token):
user.is_verified = True
user.save()
print(user.is_verified)
return HttpResponse('Your account was activated!')
else:
return HttpResponse('Activation link is invalid!')
Работает нормально, когда я запускаю сервер, и пользователь получает is_activated
, установленный на True
Но вотtest:
def test_new_user_verification(self):
new_user = User.objects.create_user('humapen4@gmail.com', 'Abc1234567')
# visit activation link
link = reverse('verify',
kwargs={'uidb64': urlsafe_base64_encode(force_bytes(new_user.pk)).decode(),
'token': account_activation_token.make_token(new_user)})
resp = self.client.get(link)
self.assertEqual(resp.status_code, 200)
self.assertTrue(new_user.is_verified)
Первый тест проходит нормально, но второй не пройден, потому что в тесте new_user.is_verified
равен False
.Я не понимаю, почему, когда я добавляю print(user.is_verified)
к представлению, он печатает True
, но в тесте это False
.
Есть идеи почему?