django-mfa3

multi factor authentication for django
git clone https://git.ce9e.org/django-mfa3.git

commit
47ea69f88e08c2b9dca9da37303e88556252b2d9
parent
366ac7937f164ea43cd77d0dc2ec578041a5be97
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-04-13 06:31
increase test coverage

Diffstat

M mfa/mixins.py 4 ++--
M tests/tests.py 29 +++++++++++++++++++++++++++++

2 files changed, 31 insertions, 2 deletions


diff --git a/mfa/mixins.py b/mfa/mixins.py

@@ -34,10 +34,10 @@ class MFAFormView(FormView):
   34    34             raise Http404 from e
   35    35 
   36    36     def begin(self):
   37    -1         raise NotImplementedError
   -1    37         raise NotImplementedError  # pragma: no cover
   38    38 
   39    39     def complete(self, code):
   40    -1         raise NotImplementedError
   -1    40         raise NotImplementedError  # pragma: no cover
   41    41 
   42    42     @method_decorator(sensitive_post_parameters())
   43    43     @method_decorator(never_cache)

diff --git a/tests/tests.py b/tests/tests.py

@@ -312,6 +312,35 @@ class PatchAdminTest(TestCase):
  312   312         self.assertEqual(res.url, '/login/?next=/admin/')
  313   313 
  314   314 
   -1   315 class ListViewTest(MFATestCase):
   -1   316     def test_list_view(self):
   -1   317         self.client.force_login(self.user)
   -1   318         MFAKey.objects.create(
   -1   319             user=self.user,
   -1   320             method='recovery',
   -1   321             name='recovery',
   -1   322             secret=make_password('123456'),
   -1   323         )
   -1   324         res = self.client.get('/mfa/')
   -1   325         self.assertEqual(res.status_code, 200)
   -1   326         self.assertEqual(res.content.count(b'<li>'), 1)
   -1   327 
   -1   328 
   -1   329 class DeleteViewTest(MFATestCase):
   -1   330     def test_list_view(self):
   -1   331         self.client.force_login(self.user)
   -1   332         key = MFAKey.objects.create(
   -1   333             user=self.user,
   -1   334             method='recovery',
   -1   335             name='recovery',
   -1   336             secret=make_password('123456'),
   -1   337         )
   -1   338         res = self.client.post(f'/mfa/{key.pk}/delete/')
   -1   339         self.assertEqual(res.status_code, 302)
   -1   340         self.assertEqual(res.url, '/mfa/')
   -1   341         self.assertEqual(MFAKey.objects.filter(pk=key.pk).count(), 0)
   -1   342 
   -1   343 
  315   344 class QRCodeTest(TestCase):
  316   345     def test_is_svg(self):
  317   346         code = get_qrcode('some_data')