def test_copy_only_parent_event(self): another_day = ConferenceDayFactory() show_context = VolunteerContext() url = reverse( self.view_name, args=[show_context.sched_event.pk], urlconf='gbe.scheduling.urls') data = { 'copy_mode': 'include_parent', 'copy_to_day': another_day.pk, 'room': self.context.room.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=[%s]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug]), another_day.conference.conference_slug, another_day.pk, str(max_pk),) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % ( show_context.event.e_title, datetime.combine( another_day.day, show_context.sched_event.starttime.time()).strftime( GBE_DATETIME_FORMAT))) self.assertContains(response, "Occurrence has been updated.<br>", 1)
def test_update_profile_has_message(self): msg = UserMessageFactory( view='TroupeUpdate', code='SUCCESS') response, data = self.submit_troupe() assert_alert_exists( response, 'success', 'Success', msg.description)
def test_copy_single_event_date_wins(self): login_as(self.privileged_user, self) self.url = reverse( self.view_name, args=[self.context.opp_event.pk], urlconf='gbe.scheduling.urls') data, another_day, other_room = self.get_solo_data() data['copy_mode'] = ['copy_to_parent', 'choose_day'] data['target_event'] = self.context.sched_event.pk response = self.client.post(self.url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug]), another_day.conference.conference_slug, another_day.pk, str([max_pk]),) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % ( self.context.opportunity.e_title, datetime.combine( another_day.day, self.context.opp_event.starttime.time()).strftime( GBE_DATETIME_FORMAT)))
def test_copy_area_duplicate_name(self): dup_area_context = StaffAreaContext() dup_area_context.area.title = self.context.area.title dup_area_context.area.save() conf_day = ConferenceDayFactory(conference=dup_area_context.conference) self.url = reverse(self.view_name, args=[dup_area_context.area.pk], urlconf='gbe.scheduling.urls') data = { 'copy_to_day': self.context.conf_day.pk, 'room': self.vol_opp.location.pk, 'pick_mode': "Next", } login_as(self.privileged_user, self) response = self.client.post(self.url, data=data, follow=True) redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.context.conference.conference_slug ]), self.context.conference.conference_slug, self.context.conf_day.pk, str([dup_area_context.area.pk + 1])) self.assertRedirects(response, redirect_url) max_area = StaffArea.objects.latest('pk') assert_alert_exists( response, 'success', 'Success', 'A new Staff Area was created.<br>Staff Area: %s' % (max_area.title))
def test_copy_child_event(self): target_context = StaffAreaContext() target_day = ConferenceDayFactory(conference=target_context.conference, day=self.context.conf_day.day + timedelta(days=340)) data = { 'copy_mode': 'copy_children_only', 'target_event': target_context.area.pk, 'copied_event': self.vol_opp.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(self.url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[target_context.conference.conference_slug]), target_context.conference.conference_slug, target_day.pk, str([max_pk]), ) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % (self.vol_opp.eventitem.e_title, datetime.combine( target_day.day, self.vol_opp.starttime.time()).strftime(DATETIME_FORMAT)))
def test_clone_class_has_message(self): msg = UserMessageFactory( view='CloneBidView', code='CLONE_CLASS_SUCCESS') response, count, bid = self.clone_class() assert_alert_exists( response, 'success', 'Success', msg.description)
def test_edit_persona_has_message(self): msg = UserMessageFactory( view='EditPersonaView', code='UPDATE_PERSONA') response, new_name = self.submit_persona() assert_alert_exists( response, 'success', 'Success', msg.description)
def test_make_new_ticket(self, m_urlopen): grant_privilege(self.privileged_user, 'Ticketing - Admin') TicketingEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() BrownPaperSettingsFactory() ticketing_event = TicketingEventsFactory( conference=self.current_conference) a = Mock() event_filename = open("tests/ticketing/eventlist.xml", 'r') a.read.side_effect = [File(event_filename).read()] m_urlopen.return_value = a login_as(self.privileged_user, self) data = self.edit_class() data['event_id'] = "1122333" data['display_icon'] = "icon-diamond" response = self.client.post(self.url, data=data, follow=True) new_class = GenericEvent.objects.get(e_title=data['e_title']) self.assertEqual(new_class.type, "Master") occurrence = Event.objects.get( eventitem__eventitem_id=new_class.eventitem_id) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%d]" % (reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug ]), self.current_conference.conference_slug, self.day.pk, occurrence.pk)) assert_alert_exists( response, 'success', 'Success', "%s %s - %s" % (create_ticket_event_success_msg, data['event_id'], "GBE10 Whole Shebang 2016")) assert_alert_exists(response, 'warning', "Warning", no_tickets_found_msg)
def test_edit_event(self): login_as(self.privileged_user, self) data = self.edit_event() response = self.client.post( self.url, data=data, follow=True) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%dL]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.context.conference.conference_slug]), self.context.conference.conference_slug, self.extra_day.pk, self.context.opp_event.pk)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.extra_day.day.strftime(DATE_FORMAT)) ) self.assertContains( response, '<tr class="bid-table success">\n ' + '<td class="bid-table">%s</td>' % data['e_title'])
def test_create_dropin_w_staffing(self): self.url = reverse( self.view_name, args=[self.current_conference.conference_slug, "drop-in"], urlconf='gbe.scheduling.urls' ) + "?pick_event=Next&event_type=drop-in" login_as(self.privileged_user, self) data = self.edit_class() data['type'] = "Drop-In" data['alloc_0-role'] = "Staff Lead" data['alloc_1-role'] = "Teacher" data['alloc_2-role'] = "Volunteer" data['alloc_0-worker'] = self.privileged_user.pk data['alloc_1-worker'] = self.teacher.pk response = self.client.post(self.url, data=data, follow=True) new_class = GenericEvent.objects.get(e_title=data['e_title']) self.assertEqual(new_class.type, "Drop-In") occurrence = Event.objects.get( eventitem__eventitem_id=new_class.eventitem_id) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%d]" % (reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug ]), self.current_conference.conference_slug, self.day.pk, occurrence.pk)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % (data['e_title'], self.day.day.strftime(GBE_DATE_FORMAT))) self.assertContains( response, '<tr class="gbe-table-row gbe-table-success">\n ' + '<td>%s</td>' % data['e_title'])
def test_create_special_w_staffing(self): self.url = reverse( self.view_name, args=[self.current_conference.conference_slug, "special"], urlconf='gbe.scheduling.urls' ) + "?pick_event=Next&event_type=special" login_as(self.privileged_user, self) data = self.edit_class() data['type'] = "Special" data['alloc_0-role'] = "Staff Lead" data['alloc_0-worker'] = self.teacher.performer_profile.pk data['set_event'] = "More..." data.pop('alloc_1-role', None) response = self.client.post(self.url, data=data, follow=True) new_event = GenericEvent.objects.get(e_title=data['e_title']) self.assertEqual(new_event.type, "Special") occurrence = Event.objects.get( eventitem__eventitem_id=new_event.eventitem_id) self.assertRedirects( response, "%s?volunteer_open=True&rehearsal_open=True" % reverse( 'edit_event', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug, occurrence.pk])) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % (data['e_title'], self.day.day.strftime(GBE_DATE_FORMAT)))
def test_get_bpt_inventory(self, m_urlopen): # privileged user gets the inventory of tickets from (fake) BPT TicketingEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() event = TicketingEventsFactory() BrownPaperSettingsFactory() a = Mock() date_filename = open("tests/ticketing/datelist.xml", 'r') price_filename = open("tests/ticketing/pricelist.xml", 'r') a.read.side_effect = [ File(date_filename).read(), File(price_filename).read() ] m_urlopen.return_value = a response = self.import_tickets() self.assertEqual(response.status_code, 200) assert_alert_exists(response, 'danger', 'Error', no_settings_error) assert_alert_exists(response, 'success', 'Success', "BPT: imported %d tickets" % 12) ticket = get_object_or_404(TicketItem, ticket_id='%s-4513068' % (event.event_id)) self.assertEqual(response.status_code, 200) self.assertEqual(ticket.cost, Decimal('125.00'))
def test_get_eb_inventory_ticket_pagination(self, m_eventbrite): # privileged user gets the inventory of tickets from (fake) EB TicketingEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() event = TicketingEventsFactory() BrownPaperSettingsFactory() EventbriteSettingsFactory() simple_event_dict = copy.deepcopy(event_dict) simple_event_dict['events'] = [event_dict['events'][0]] continue_ticket_page = copy.deepcopy(ticket_dict1) continue_ticket_page['pagination']['has_more_items'] = True continue_ticket_page['pagination']['continuation'] = "eyJwYWdlIjogMn0" m_eventbrite.side_effect = [ simple_event_dict, continue_ticket_page, ticket_dict3 ] response = self.import_tickets() assert_alert_exists(response, 'success', 'Success', ("Successfully imported %d events, %d tickets" % (1, 4))) assert_alert_exists(response, 'success', 'Success', ("BPT: imported %d tickets") % (0)) ticket = get_object_or_404(TicketItem, ticket_id='987987987') self.assertEqual(ticket.cost, Decimal('0.00')) ticket = get_object_or_404(TicketItem, ticket_id='098098098') self.assertEqual(ticket.cost, Decimal('100.00'))
def test_auth_user_create_class(self): login_as(self.privileged_user, self) data = self.edit_class() data['eventitem_id'] = "" response = self.client.post( self.url, data=data, follow=True) new_class = Class.objects.get(e_title=data['e_title']) self.assertEqual(new_class.teacher, self.teacher) occurrence = Event.objects.get( eventitem__eventitem_id=new_class.eventitem_id) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%d]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug]), self.current_conference.conference_slug, self.day.pk, occurrence.pk)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.day.day.strftime(GBE_DATE_FORMAT)) ) self.assertContains( response, '<tr class="gbe-table-row gbe-table-success">\n ' + '<td>%s</td>' % data['e_title'])
def test_class_draft_make_message(self): '''class_bid, not submitting and no other problems, should redirect to home''' response, data = self.post_class_edit_draft() self.assertEqual(200, response.status_code) assert_alert_exists(response, 'success', 'Success', default_class_draft_msg)
def test_edit_event_and_continue(self): grant_privilege(self.privileged_user, 'Volunteer Coordinator') login_as(self.privileged_user, self) data = self.edit_event() data['edit_event'] = "Save and Continue" response = self.client.post( self.url, data=data, follow=True) self.assertRedirects( response, "%s?worker_open=True" % self.url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.extra_day.day.strftime(DATE_FORMAT)) ) self.assertContains(response, data['e_title']) self.assertContains(response, data['e_description']) self.assertContains( response, '<option value="%d" selected="selected">%s</option>' % ( self.extra_day.pk, self.extra_day.day.strftime(DATE_FORMAT))) self.assertContains(response, 'name="max_volunteer" type="number" value="3" />') self.assertContains( response, 'name="duration" step="any" type="number" value="2.5" />')
def test_class_draft_has_message(self): '''class_bid, not submitting and no other problems, should redirect to home''' msg = UserMessageFactory(view='MakeClassView', code='DRAFT_SUCCESS') response, data = self.post_class_edit_draft() self.assertEqual(200, response.status_code) assert_alert_exists(response, 'success', 'Success', msg.description)
def test_approve(self): self.context.worker.role = "Pending Volunteer" self.context.worker.save() login_as(self.privileged_user, self) approve_url = reverse(self.approve_name, urlconf='gbe.scheduling.urls', args=[ "approve", self.context.profile.pk, self.context.allocation.pk ]) response = self.client.get(approve_url) self.assertNotContains(response, approve_url) self.assertNotContains(response, '<tr class="gbe-table-row gbe-table-success">') alert_msg = set_volunteer_role_msg % "Volunteer" full_msg = '%s Person: %s<br/>Event: %s, Start Time: %s' % ( alert_msg, str(self.context.profile), str(self.context.opp_event), self.context.opp_event.starttime.strftime(GBE_DATETIME_FORMAT)) assert_alert_exists(response, 'success', 'Success', full_msg) msg = assert_email_template_used( "A change has been made to your Volunteer Schedule!", outbox_size=2) assert ("http://%s%s" % (Site.objects.get_current().domain, reverse('home', urlconf='gbe.urls')) in msg.body) assert_email_recipient([self.context.profile.user_object.email], outbox_size=2) staff_msg = assert_email_template_used("Volunteer Schedule Change", outbox_size=2, message_index=1) assert (str(self.context.opp_event) in staff_msg.body) assert_email_recipient([self.privileged_user.email], outbox_size=2, message_index=1)
def test_act_submit_act_no_viable_ticket(self): response, data = self.post_act_submission() just_made = self.performer.acts.all().first() self.assertRedirects( response, reverse('act_review', urlconf="gbe.urls", args=[just_made.id])) assert_alert_exists(response, 'danger', 'Error', no_comp_msg)
def test_copy_single_event(self): another_day = ConferenceDayFactory( conference=self.context.conference, day=self.context.conf_day.day + timedelta(days=1)) data = { 'copy_to_day': another_day.pk, 'pick_mode': "Next", } login_as(self.privileged_user, self) self.url = reverse( self.view_name, args=[self.context.opp_event.pk], urlconf='gbe.scheduling.urls') response = self.client.post(self.url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug]), another_day.conference.conference_slug, another_day.pk, str([max_pk]),) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % ( self.context.opportunity.e_title, datetime.combine( another_day.day, self.context.opp_event.starttime.time()).strftime( DATETIME_FORMAT)))
def test_copy_only_area(self): area_context = StaffAreaContext() conf_day = ConferenceDayFactory(conference=area_context.conference) another_day = ConferenceDayFactory() another_room = RoomFactory() another_room.conferences.add(another_day.conference) data = { 'pick_mode': "Next", 'copy_to_day': another_day.pk, 'room': another_room.room.pk, } self.url = reverse(self.view_name, args=[area_context.area.pk], urlconf='gbe.scheduling.urls') login_as(self.privileged_user, self) response = self.client.post(self.url, data=data, follow=True) redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug ]), another_day.conference.conference_slug, another_day.pk, str([area_context.area.pk + 1])) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'A new Staff Area was created.<br>Staff Area: %s' % (area_context.area.title))
def test_copy_child_event(self): show_context = VolunteerContext() target_context = ShowContext() url = reverse( self.view_name, args=[show_context.sched_event.pk], urlconf='gbe.scheduling.urls') data = { 'copy_mode': 'copy_children_only', 'target_event': target_context.sched_event.pk, 'copied_event': show_context.opp_event.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[target_context.conference.conference_slug]), target_context.conference.conference_slug, target_context.days[0].pk, str([max_pk]),) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % ( show_context.opportunity.e_title, datetime.combine( target_context.days[0].day, show_context.opp_event.starttime.time()).strftime( DATETIME_FORMAT)))
def test_copy_only_parent_event(self): another_day = ConferenceDayFactory() another_room = RoomFactory() another_room.conferences.add(another_day.conference) data = { 'copy_mode': 'include_parent', 'copy_to_day': another_day.pk, 'room': another_room.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(self.url, data=data, follow=True) max_area = StaffArea.objects.latest('pk') redirect_url = "%s?%s-day=%d&filter=Filter&alt_id=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug]), another_day.conference.conference_slug, another_day.pk, max_area.pk, ) self.assertRedirects(response, redirect_url) self.assertRedirects(response, redirect_url) self.assertFalse(max_area.default_location) assert_alert_exists( response, 'success', 'Success', 'A new Staff Area was created.<br>Staff Area: %s' % (max_area.title))
def test_copy_only_parent_event(self): another_day = ConferenceDayFactory() show_context = VolunteerContext() url = reverse( self.view_name, args=[show_context.sched_event.pk], urlconf='gbe.scheduling.urls') data = { 'copy_mode': 'include_parent', 'copy_to_day': another_day.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=[%sL]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug]), another_day.conference.conference_slug, another_day.pk, str(max_pk),) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % ( show_context.event.e_title, datetime.combine( another_day.day, show_context.sched_event.starttime.time()).strftime( DATETIME_FORMAT))) self.assertContains(response, "Occurrence has been updated.<br>", 1)
def test_copy_child_parent_events_same_conf(self): data = { 'copy_mode': 'include_parent', 'copy_to_day': self.context.conf_day.pk, 'copied_event': self.vol_opp.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) max_pk = Event.objects.latest('pk').pk response = self.client.post(self.url, data=data, follow=True) new_occurrences = [] max_area = StaffArea.objects.latest('pk') for occurrence in Event.objects.filter(pk__gt=max_pk): new_occurrences += [occurrence.pk] redirect_url = "%s?%s-day=%d&filter=Filter&new=%s&alt_id=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.context.conference.conference_slug]), self.context.conference.conference_slug, self.context.conf_day.pk, replace(str(new_occurrences), " ", "%20"), max_area.pk) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'A new Staff Area was created.<br>Staff Area: %s' % (max_area.title)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % (self.vol_opp.eventitem.e_title, datetime.combine( self.context.conf_day.day, self.vol_opp.starttime.time()).strftime(DATETIME_FORMAT)))
def test_edit_event_and_continue(self): grant_privilege(self.privileged_user, 'Volunteer Coordinator') login_as(self.privileged_user, self) data = self.edit_event() data['edit_event'] = "Save and Continue" response = self.client.post( self.url, data=data, follow=True) self.assertRedirects( response, "%s?volunteer_open=True" % self.url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.extra_day.day.strftime(DATE_FORMAT)) ) self.assertContains(response, data['e_title']) self.assertContains(response, data['e_description']) self.assertContains( response, '<option value="%d" selected="selected">%s</option>' % ( self.extra_day.pk, self.extra_day.day.strftime(DATE_FORMAT))) self.assertContains(response, 'name="max_volunteer" type="number" value="3" />') self.assertContains( response, 'name="duration" step="any" type="number" value="2.5" />')
def test_update_profile_has_message(self): msg = UserMessageFactory( view='UpdateProfileView', code='UPDATE_PROFILE') response = self.post_profile() assert_alert_exists( response, 'success', 'Success', msg.description)
def test_not_interested_at_all(self): data = self.get_volunteer_form(submit=True) data['%d-rank' % self.interest.pk] = 1 response, data = self.post_volunteer_submission(data) self.assertEqual(response.status_code, 200) assert_alert_exists( response, 'danger', 'Error', default_volunteer_no_interest_msg)
def test_auth_user_create_opp(self): login_as(self.privileged_user, self) data = self.create_opp() data['eventitem_id'] = "" response = self.client.post( self.url, data=data, follow=True) occurrence = Event.objects.order_by('pk').last() self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%d]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug]), self.current_conference.conference_slug, self.special_volunteer.conf_day.pk, occurrence.pk)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.special_volunteer.conf_day.day.strftime( GBE_DATE_FORMAT))) self.assertContains( response, '<tr class="gbe-table-row gbe-table-success">\n ' + '<td>%s</td>' % data['e_title']) self.assertTrue(occurrence.approval_needed)
def test_create_persona_has_message(self): msg = UserMessageFactory( view='RegisterPersonaView', code='CREATE_PERSONA') response, persona_count = self.submit_persona() assert_alert_exists( response, 'success', 'Success', msg.description)
def test_create_master(self): login_as(self.privileged_user, self) data = self.edit_class() response = self.client.post( self.url, data=data, follow=True) new_class = GenericEvent.objects.get(e_title=data['e_title']) self.assertEqual(new_class.type, "Master") occurrence = Event.objects.get( eventitem__eventitem_id=new_class.eventitem_id) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%dL]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug]), self.current_conference.conference_slug, self.day.pk, occurrence.pk)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.day.day.strftime(DATE_FORMAT)) ) self.assertContains( response, '<tr class="bid-table success">\n ' + '<td class="bid-table">%s</td>' % data['e_title'])
def test_set_ticket(self): grant_privilege(self.privileged_user, 'Ticketing - Admin') bpt_event = BrownPaperEventsFactory( conference=self.current_conference) login_as(self.privileged_user, self) data = self.edit_class() data['bpt_events'] = bpt_event.pk response = self.client.post( self.url, data=data, follow=True) new_class = GenericEvent.objects.get(e_title=data['e_title']) self.assertEqual(new_class.type, "Master") occurrence = Event.objects.get( eventitem__eventitem_id=new_class.eventitem_id) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%dL]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.current_conference.conference_slug]), self.current_conference.conference_slug, self.day.pk, occurrence.pk)) assert_alert_exists( response, 'success', 'Success', link_event_to_ticket_success_msg + '%s - %s, ' % ( bpt_event.bpt_event_id, bpt_event.title) )
def test_pick_everyone_no_priv(self): self.reduced_login() data = { 'everyone': "Everyone", } response = self.client.post(self.url, data=data, follow=True) assert_alert_exists(response, 'danger', 'Error', unknown_request)
def test_show_interest(self): login_as(self.profile, self) response = self.client.get(self.url, follow=True) redirect_url = reverse('home', urlconf='gbe.urls') self.assertRedirects(response, redirect_url) self.assertContains(response, self.context.bid.e_title) assert_alert_exists(response, 'success', 'Success', set_favorite_msg)
def test_edit_event_w_staffing(self): login_as(self.privileged_user, self) data = self.edit_event() data['alloc_0-worker'] = self.privileged_user.profile.pk response = self.client.post( self.url, data=data, follow=True) self.assertRedirects( response, "%s?%s-day=%d&filter=Filter&new=[%dL]" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[self.context.conference.conference_slug]), self.context.conference.conference_slug, self.extra_day.pk, self.context.sched_event.pk)) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s 11:00 AM' % ( data['e_title'], self.extra_day.day.strftime(DATE_FORMAT)) ) self.assertContains( response, '<tr class="bid-table success">\n ' + '<td class="bid-table">%s</td>' % data['e_title'])
def test_copy_only_parent_event(self): another_day = ConferenceDayFactory() data = { 'copy_mode': 'include_parent', 'copy_to_day': another_day.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(self.url, data=data, follow=True) max_area = StaffArea.objects.latest('pk') redirect_url = "%s?%s-day=%d&filter=Filter&alt_id=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[another_day.conference.conference_slug]), another_day.conference.conference_slug, another_day.pk, max_area.pk,) self.assertRedirects(response, redirect_url) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'A new Staff Area was created.<br>Staff Area: %s' % ( max_area.title))
def test_edit_act_title_collision(self): response, original = self.post_title_collision() self.assertEqual(response.status_code, 200) error_msg = default_act_title_conflict % (reverse( 'act_edit', urlconf='gbe.urls', args=[original.pk ]), original.b_title) assert_alert_exists(response, 'danger', 'Error', error_msg)
def test_copy_child_event(self): target_context = StaffAreaContext() target_day = ConferenceDayFactory( conference=target_context.conference, day=self.context.conf_day.day + timedelta(days=340)) data = { 'copy_mode': 'copy_children_only', 'target_event': target_context.area.pk, 'copied_event': self.vol_opp.pk, 'pick_event': "Finish", } login_as(self.privileged_user, self) response = self.client.post(self.url, data=data, follow=True) max_pk = Event.objects.latest('pk').pk redirect_url = "%s?%s-day=%d&filter=Filter&new=%s" % ( reverse('manage_event_list', urlconf='gbe.scheduling.urls', args=[target_context.conference.conference_slug]), target_context.conference.conference_slug, target_day.pk, str([max_pk]),) self.assertRedirects(response, redirect_url) assert_alert_exists( response, 'success', 'Success', 'Occurrence has been updated.<br>%s, Start Time: %s' % ( self.vol_opp.eventitem.e_title, datetime.combine( target_day.day, self.vol_opp.starttime.time()).strftime( DATETIME_FORMAT)))
def test_transactions_sync_bpt_only(self, m_urlopen): TicketingEvents.objects.all().delete() BrownPaperSettings.objects.all().delete() BrownPaperSettingsFactory() event = TicketingEventsFactory(event_id="1") ticket = TicketItemFactory(ticketing_event=event, ticket_id='%s-%s' % (event.event_id, '3255985')) limbo, created = User.objects.get_or_create(username='******') a = Mock() order_filename = open("tests/ticketing/orderlist.xml", 'r') a.read.side_effect = [File(order_filename).read()] m_urlopen.return_value = a login_as(self.privileged_user, self) response = self.client.post(self.url, data={'Sync': 'Sync'}) nt.assert_equal(response.status_code, 200) transaction = get_object_or_404(Transaction, reference='A12345678') nt.assert_equal(str(transaction.order_date), "2014-08-15 19:26:56") nt.assert_equal(transaction.shipping_method, 'Will Call') nt.assert_equal(transaction.order_notes, 'None') nt.assert_equal(transaction.payment_source, 'Brown Paper Tickets') nt.assert_equal(transaction.purchaser.email, '*****@*****.**') nt.assert_equal(transaction.purchaser.phone, '111-222-3333') nt.assert_equal(transaction.purchaser.matched_to_user, limbo) nt.assert_equal(transaction.purchaser.first_name, 'John') nt.assert_equal(transaction.purchaser.last_name, 'Smith') assert_alert_exists( response, 'success', 'Success', "%s Transactions imported: %s - BPT" % (import_transaction_message, "1")) assert_alert_exists(response, 'danger', 'Error', no_settings_error)
def test_set_eval(self): q1 = EventEvalQuestionFactory(answer_type="grade") q2 = EventEvalQuestionFactory(answer_type="text") q3 = EventEvalQuestionFactory(answer_type="boolean") login_as(self.profile, self) response = self.client.post( self.url, data={ 'question%d' % self.q0.pk: "A", 'question%d' % q1.pk: "B", 'question%d' % q2.pk: "This is Test Text.", 'question%d' % q3.pk: True, }, follow=True) assert_alert_exists( response, 'info', 'Info', eval_success_msg) self.assertEqual( 2, EventEvalGrade.objects.filter( event=self.context.sched_event).count()) self.assertEqual( 1, EventEvalComment.objects.filter( event=self.context.sched_event).count()) self.assertEqual( 1, EventEvalBoolean.objects.filter( event=self.context.sched_event).count()) self.assertRedirects(response, reverse('home', urlconf='gbe.urls'))
def test_update_profile_has_message(self): msg = UserMessageFactory( view='EditTroupeView', code='UPDATE_TROUPE') response, data = self.submit_troupe() assert_alert_exists( response, 'success', 'Success', msg.description)
def test_edit_area_and_continue(self): grant_privilege(self.privileged_user, 'Volunteer Coordinator') login_as(self.privileged_user, self) data = self.edit_area() data['edit_event'] = "Save and Continue" response = self.client.post( self.url, data=data, follow=True) self.assertRedirects( response, "%s?volunteer_open=True" % self.url) assert_alert_exists( response, 'success', 'Success', 'Staff Area has been updated.<br>Title: %s' % ( data['title'])) self.assertContains(response, data['title']) self.assertContains(response, data['description']) self.assertContains( response, '<option value="%d" selected="selected">%s</option>' % ( self.privileged_user.profile.pk, str(self.privileged_user.profile))) self.assertContains( response, 'name="default_volunteers" type="number" value="3" />')
def test_class_draft_make_message(self): '''class_bid, not submitting and no other problems, should redirect to home''' response, data = self.post_class_edit_draft() self.assertEqual(200, response.status_code) assert_alert_exists( response, 'success', 'Success', default_class_draft_msg)
def test_vendor_draft_has_message(self): msg = UserMessageFactory( view='MakeVendorView', code='DRAFT_SUCCESS') response = self.post_edit_paid_vendor_draft() self.assertEqual(200, response.status_code) assert_alert_exists( response, 'success', 'Success', msg.description)
def test_not_interested_at_all_make_message(self): msg = UserMessageFactory( view='MakeVolunteerView', code='NO_INTERESTS_SUBMITTED') response, context = self.edit_volunteer(rank=1) self.assertEqual(response.status_code, 200) assert_alert_exists( response, 'danger', 'Error', msg.description)
def test_volunteer_submit_has_message(self): msg = UserMessageFactory( view='MakeVolunteerView', code='EDIT_SUCCESS') response, context = self.edit_volunteer() self.assertEqual(response.status_code, 200) assert_alert_exists( response, 'success', 'Success', msg.description)
def test_post_no_purchase(self): login_as(ProfileFactory(), self) response = self.client.post(self.url, follow=True) assert_alert_exists( response, 'danger', 'Error', not_purchased_msg)
def test_vendor_submit_has_message(self): msg = UserMessageFactory( view='MakeVendorView', code='SUBMIT_SUCCESS') response = self.post_edit_paid_vendor_submission() self.assertEqual(response.status_code, 200) assert_alert_exists( response, 'success', 'Success', msg.description)
def test_propose_submit_has_message(self): msg = UserMessageFactory( view='ProposeClassView', code='SUBMIT_SUCCESS') response = self.post_class_proposal() self.assertEqual(response.status_code, 200) assert_alert_exists( response, 'success', 'Success', msg.description)
def test_pick_everyone_no_priv(self): self.reduced_login() data = { 'everyone': "Everyone", } response = self.client.post(self.url, data=data, follow=True) assert_alert_exists( response, 'danger', 'Error', unknown_request)
def test_edit_act_techinfo_has_message(self): msg = UserMessageFactory( view='EditActTechInfoView', code='UPDATE_ACT_TECH') response, context, another = self.post_act_tech_info_success() self.assertEqual(response.status_code, 200) assert_alert_exists( response, 'success', 'Success', msg.description)
def test_no_questions(self): EventEvalQuestion.objects.all().delete() login_as(self.profile, self) response = self.client.get(self.url, follow=True) assert_alert_exists( response, 'warning', 'Warning', not_ready_for_eval)
def test_get_no_purchase(self): login_as(ProfileFactory(), self) response = self.client.get(self.url, follow=True) assert_alert_exists( response, 'danger', 'Error', not_purchased_msg) self.assertRedirects(response, reverse('home', urlconf='gbe.urls'))
def test_already_answered(self): self.context.set_eval_answerer(self.profile) login_as(self.profile, self) response = self.client.get(self.url, follow=True) assert_alert_exists( response, 'warning', 'Warning', one_eval_msg)
def test_class_draft_has_message(self): '''class_bid, not submitting and no other problems, should redirect to home''' msg = UserMessageFactory( view='MakeClassView', code='DRAFT_SUCCESS') response, data = self.post_class_edit_draft() self.assertEqual(200, response.status_code) assert_alert_exists( response, 'success', 'Success', msg.description)