core: add key field to token for easier rotation
This commit is contained in:
@ -5,8 +5,7 @@ from django.core.management import call_command
|
||||
from django.shortcuts import reverse
|
||||
from django.test import TestCase
|
||||
|
||||
from passbook.core.models import Token, User
|
||||
from passbook.lib.config import CONFIG
|
||||
from passbook.core.models import Token, TokenIntents, User
|
||||
|
||||
|
||||
class TestRecovery(TestCase):
|
||||
@ -17,21 +16,19 @@ class TestRecovery(TestCase):
|
||||
|
||||
def test_create_key(self):
|
||||
"""Test creation of a new key"""
|
||||
CONFIG.update_from_dict({"domain": "testserver"})
|
||||
out = StringIO()
|
||||
self.assertEqual(len(Token.objects.all()), 0)
|
||||
call_command("create_recovery_key", "1", self.user.username, stdout=out)
|
||||
self.assertIn("https://testserver/recovery/use-token/", out.getvalue())
|
||||
token = Token.objects.get(intent=TokenIntents.INTENT_RECOVERY, user=self.user)
|
||||
self.assertIn(token.key, out.getvalue())
|
||||
self.assertEqual(len(Token.objects.all()), 1)
|
||||
|
||||
def test_recovery_view(self):
|
||||
"""Test recovery view"""
|
||||
out = StringIO()
|
||||
call_command("create_recovery_key", "1", self.user.username, stdout=out)
|
||||
token = Token.objects.first()
|
||||
token = Token.objects.get(intent=TokenIntents.INTENT_RECOVERY, user=self.user)
|
||||
self.client.get(
|
||||
reverse(
|
||||
"passbook_recovery:use-token", kwargs={"uuid": str(token.token_uuid)}
|
||||
)
|
||||
reverse("passbook_recovery:use-token", kwargs={"key": token.key})
|
||||
)
|
||||
self.assertEqual(int(self.client.session["_auth_user_id"]), token.user.pk)
|
||||
|
||||
Reference in New Issue
Block a user