diff --git a/hypha/apply/funds/tests/factories/models.py b/hypha/apply/funds/tests/factories/models.py index b45246066b0b0b175d558e27d1cf53ae87a54ffe..f0215db83fa80faa98b34bdb0168166761485753 100644 --- a/hypha/apply/funds/tests/factories/models.py +++ b/hypha/apply/funds/tests/factories/models.py @@ -3,6 +3,8 @@ import datetime import factory import wagtail_factories +from django.utils import timezone + from hypha.apply.funds.models import ( ApplicationRevision, ApplicationSubmission, @@ -361,4 +363,5 @@ class ReminderFactory(factory.DjangoModelFactory): submission = factory.SubFactory('hypha.apply.funds.tests.factories.ApplicationSubmissionFactory') user = factory.SubFactory(StaffFactory) - time = factory.Sequence(lambda n: datetime.datetime.now() + datetime.timedelta(days=7 * n + 1)) + time = factory.Sequence(lambda n: timezone.now() + datetime.timedelta(days=7 * n + 1)) + action = factory.Iterator(["reviewers_review"]) diff --git a/hypha/apply/funds/tests/test_models.py b/hypha/apply/funds/tests/test_models.py index 6f13ca5c41d89aad06de8de266885589163a6544..ddc3a52a373bc1e2fb748e06d4743ca3ce088006 100644 --- a/hypha/apply/funds/tests/test_models.py +++ b/hypha/apply/funds/tests/test_models.py @@ -1,6 +1,6 @@ import itertools import os -from datetime import date, datetime, timedelta +from datetime import date, timedelta from django.conf import settings from django.contrib.auth import get_user_model @@ -659,18 +659,17 @@ class TestForTableQueryset(TestCase): class TestReminderModel(TestCase): - def setUp(self): - self.submission = ApplicationSubmissionFactory() def test_can_save_reminder(self): - reminder = ReminderFactory(submission=self.submission, time=datetime.now()) - self.assertEqual(self.submission, reminder.submission) + submission = ApplicationSubmissionFactory() + reminder = ReminderFactory(submission=submission) + self.assertEqual(submission, reminder.submission) self.assertFalse(reminder.sent) def test_check_default_action(self): - reminder = ReminderFactory(submission=self.submission, time=datetime.now()) + reminder = ReminderFactory() self.assertEqual(reminder.action, Reminder.REVIEW) def test_reminder_action_message(self): - reminder = ReminderFactory(submission=self.submission, time=datetime.now()) + reminder = ReminderFactory() self.assertEqual(reminder.action_message, Reminder.ACTION_MESSAGE[f'{reminder.action}-{reminder.medium}']) diff --git a/hypha/apply/funds/tests/test_views.py b/hypha/apply/funds/tests/test_views.py index 5e5bd2cea53ed4486aedd4cb274fb3bfda88d8fb..6f046ac64542322bead3c9f10a4e977d8c1e90e0 100644 --- a/hypha/apply/funds/tests/test_views.py +++ b/hypha/apply/funds/tests/test_views.py @@ -17,6 +17,7 @@ from hypha.apply.funds.tests.factories import ( AssignedWithRoleReviewersFactory, InvitedToProposalFactory, LabSubmissionFactory, + ReminderFactory, ReviewerRoleFactory, ScreeningStatusFactory, SealedRoundFactory, @@ -735,3 +736,35 @@ class TestAnonSubmissionFileView(BaseSubmissionFileViewTestCase): self.assertEqual(len(response.redirect_chain), 2) for path, _ in response.redirect_chain: self.assertIn(reverse('users_public:login'), path) + + +class BaseProjectDeleteTestCase(BaseViewTestCase): + url_name = 'funds:submissions:reminders:{}' + base_view_name = 'delete' + + def get_kwargs(self, instance): + return {'pk': instance.id, 'submission_pk': instance.submission.id} + + +class TestStaffReminderDeleteView(BaseProjectDeleteTestCase): + user_factory = StaffFactory + + def test_has_access(self): + reminder = ReminderFactory() + response = self.get_page(reminder) + self.assertEqual(response.status_code, 200) + + def test_confirm_message(self): + reminder = ReminderFactory() + response = self.get_page(reminder) + self.assertContains(response, 'Are you sure you want to delete') + self.assertEqual(response.status_code, 200) + + +class TestUserReminderDeleteView(BaseProjectDeleteTestCase): + user_factory = ApplicantFactory + + def test_doesnt_has_access(self): + reminder = ReminderFactory() + with self.assertRaises(PermissionDenied): + self.get_page(reminder)