From fc5c9a099498e5121c415b33ea8b19ba6ad8aa97 Mon Sep 17 00:00:00 2001 From: Amit Upreti Date: Mon, 6 Mar 2023 12:47:33 -0500 Subject: [PATCH] add test for events agreement Added two tests 1. Edits event to switch the event agreement 2. Participant joins an event and sings the agreement --- .../events/fixtures/demo-events.json | 13 +++++ physionet-django/events/tests_views.py | 52 ++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/physionet-django/events/fixtures/demo-events.json b/physionet-django/events/fixtures/demo-events.json index 1f9754f029..3f66e60903 100644 --- a/physionet-django/events/fixtures/demo-events.json +++ b/physionet-django/events/fixtures/demo-events.json @@ -45,5 +45,18 @@ "access_template": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tincidunt lobortis feugiat vivamus at augue eget.

", "creator": 1 } + }, + { + "model": "events.eventagreement", + "pk": 2, + "fields": { + "name": "PhysioNet Restricted Health Data Use Agreement", + "slug": "vafgtyathsgh", + "version": "1.2", + "is_active": true, + "html_content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tincidunt lobortis feugiat vivamus at augue eget.

", + "access_template": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tincidunt lobortis feugiat vivamus at augue eget.

", + "creator": 1 + } } ] \ No newline at end of file diff --git a/physionet-django/events/tests_views.py b/physionet-django/events/tests_views.py index 0bca2be85d..f2568ef86c 100644 --- a/physionet-django/events/tests_views.py +++ b/physionet-django/events/tests_views.py @@ -3,7 +3,7 @@ from django.urls import reverse -from events.models import Event, EventApplication +from events.models import Event, EventApplication, EventAgreementSignature from user.test_views import TestMixin @@ -264,3 +264,53 @@ def test_event_participation_rejected(self): # check the status on the event application event_application.refresh_from_db() self.assertEqual(event_application.status, EventApplication.EventApplicationStatus.NOT_APPROVED) + + def test_event_edit_change_event_agreement(self): + """tests the view that edits an event and changes the event agreement""" + + # create an event + self.test_add_event_valid() + + event = Event.objects.get(title=self.new_event_name) + slug = event.slug + + # login as the host and edit the event + self.client.login(username='admin', password='Tester11!') + + response = self.client.post( + reverse('update_event', kwargs={'event_slug': slug}), + data={ + 'title': event.title, + 'description': event.description, + 'start_date': event.start_date, + 'end_date': event.end_date, + 'category': event.category, + 'event_agreement': ['2'], + 'allowed_domains': '', + }) + self.assertEqual(response.status_code, 302) + event = Event.objects.get(slug=slug) + self.assertEqual(event.event_agreement.pk, 2) + + def test_sign_event_agreement(self): + """tests the view that signs an event agreement""" + + # create an event, login as participant, join the event, and login as host and approve the user + self.test_event_participation_approved() + + event = Event.objects.get(title=self.new_event_name) + + # login as the participant + self.client.login(username='amitupreti', password='Tester11!') + + # sign the event agreement + response = self.client.post( + reverse('sign_event_agreement', kwargs={'event_slug': event.slug}), + data={ + 'agree': '' + }) + self.assertEqual(response.status_code, 302) + + # check if the user signed the event agreement + EventAgreementSignature.objects.filter(event=event, user__username='amitupreti', + event_agreement=event.event_agreement).exists()