def test_create_rsvp(self): data = self.APPLICATION_DATA data['study_group'] = StudyGroup.objects.get(pk=1) application = Application(**data) application.save() sg = StudyGroup.objects.get(pk=1) meeting_date = timezone.now() sgm = StudyGroupMeeting( study_group=sg, meeting_time=meeting_date.time(), meeting_date=meeting_date.date() ) sgm.save() sgm = StudyGroupMeeting( study_group=sg, meeting_time=meeting_date.time(), meeting_date=meeting_date.date() + datetime.timedelta(weeks=1) ) sgm.save() # Test creating an RSVP self.assertEqual(Rsvp.objects.all().count(), 0) create_rsvp('*****@*****.**', sg.id, meeting_date, 'yes') self.assertEqual(Rsvp.objects.all().count(), 1) self.assertTrue(Rsvp.objects.all().first().attending) # Test updating an RSVP create_rsvp('*****@*****.**', sg.id, meeting_date, 'no') self.assertEqual(Rsvp.objects.all().count(), 1) self.assertFalse(Rsvp.objects.all().first().attending)
def rsvp(request): user = request.GET.get('user') study_group = request.GET.get('study_group') attending = request.GET.get('attending') sig = request.GET.get('sig') meeting_date = None try: meeting_date = dateutil.parser.parse(request.GET.get('meeting_date')) except: # TODO log error pass # Generator for conditions def conditions(): yield user yield study_group yield meeting_date yield attending yield sig yield meeting_date > timezone.now() yield check_rsvp_signature(user, study_group, meeting_date, attending, sig) if all(conditions()): rsvp = create_rsvp(user, int(study_group), meeting_date, attending) url = reverse('studygroups_rsvp_success') return http.HttpResponseRedirect(url) else: messages.error(request, 'Bad RSVP code') url = reverse('studygroups_landing') # TODO user http error code and display proper error page return http.HttpResponseRedirect(url)
def test_create_rsvp(self): data = self.APPLICATION_DATA data['study_group'] = StudyGroup.objects.all()[0] application = Application(**data) application.save() sg = StudyGroup.objects.all()[0] meeting_date = timezone.now() sgm = StudyGroupMeeting(study_group=sg, meeting_time=meeting_date) sgm.save() # Test creating an RSVP self.assertEqual(Rsvp.objects.all().count(), 0) create_rsvp('*****@*****.**', sg.id, meeting_date.isoformat(), 'yes') self.assertEqual(Rsvp.objects.all().count(), 1) self.assertTrue(Rsvp.objects.all().first().attending) # Test updating an RSVP create_rsvp('*****@*****.**', sg.id, meeting_date.isoformat(), 'no') self.assertEqual(Rsvp.objects.all().count(), 1) self.assertFalse(Rsvp.objects.all().first().attending)