From 8483c46cc35bff44422553a659187cc1e2000152 Mon Sep 17 00:00:00 2001 From: rgraber Date: Wed, 18 Sep 2024 14:46:19 -0400 Subject: [PATCH] fixup!: oops sub tests --- .../audit_log/tests/test_one_time_auth.py | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/kobo/apps/audit_log/tests/test_one_time_auth.py b/kobo/apps/audit_log/tests/test_one_time_auth.py index 205709c2e3..447d8c0db5 100644 --- a/kobo/apps/audit_log/tests/test_one_time_auth.py +++ b/kobo/apps/audit_log/tests/test_one_time_auth.py @@ -126,9 +126,40 @@ def side_effect(request): self.assertTrue(log_exists) self.assertEqual(AuditLog.objects.count(), 1) - def test_digest_auth_for_submission(self): + @data( + 'kpi.authentication.DRFTokenAuthentication.authenticate', + 'kpi.authentication.DRFBasicAuthentication.authenticate', + 'kpi.authentication.OPOAuth2Authentication.authenticate', + 'kobo.apps.openrosa.libs.authentication.BasicAuthentication.authenticate', + ) + def test_any_auth_for_submissions(self, authetication_method): + """ + Test any normal one-time authenticated submission results in a submission access log + """ + + with patch( + authetication_method, + return_value=(TestOneTimeAuthentication.user, 'something'), + ): + # assume the submission works, we don't actually care + with patch( + 'kobo.apps.openrosa.apps.api.viewsets.xform_submission_api.XFormSubmissionApi.create', + return_value=HttpResponse(status=200), + ): + # try both v1 and v2 + self.client.post(reverse('submissions')) + self.client.post(reverse('submissions-list')) + log_exists = AuditLog.objects.filter( + user_uid=TestOneTimeAuthentication.user.extra_details.uid, + action=AuditAction.AUTH, + metadata__auth_type='submission', + ).exists() + self.assertTrue(log_exists) + self.assertEqual(AuditLog.objects.count(), 2) + + def test_digest_auth_for_submissions(self): """ - Test digest authentications for submissions result in an audit log being created with the 'Submission' type + Test digest-authenticated submissions result in a submission access log """ def side_effect(request): @@ -146,14 +177,17 @@ def side_effect(request): 'kobo.apps.openrosa.apps.api.viewsets.xform_submission_api.XFormSubmissionApi.create', return_value=HttpResponse(status=200), ): + # check v1 and v2 self.client.post(reverse('submissions'), **header) + self.client.post(reverse('submissions-list'), **header) + log_exists = AuditLog.objects.filter( user_uid=TestOneTimeAuthentication.user.extra_details.uid, action=AuditAction.AUTH, metadata__auth_type='submission', ).exists() self.assertTrue(log_exists) - self.assertEqual(AuditLog.objects.count(), 1) + self.assertEqual(AuditLog.objects.count(), 2) def test_authorized_application_auth_creates_log(self): app: AuthorizedApplication = AuthorizedApplication(name='Auth app')