Beispiel #1
0
 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)
Beispiel #3
0
 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)))
Beispiel #4
0
    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))
Beispiel #5
0
 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)))
Beispiel #6
0
 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)
Beispiel #7
0
 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)
Beispiel #8
0
 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)
Beispiel #9
0
 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'])
Beispiel #10
0
 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'])
Beispiel #11
0
 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'])
Beispiel #15
0
 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)
Beispiel #16
0
 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" />')
Beispiel #17
0
 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)))
Beispiel #21
0
 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)))
Beispiel #23
0
 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)
Beispiel #25
0
 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" />')
Beispiel #27
0
 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)
         )
Beispiel #33
0
 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)
Beispiel #34
0
 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))
Beispiel #37
0
 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)))
Beispiel #39
0
    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)
Beispiel #40
0
    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'))
Beispiel #41
0
 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" />')
Beispiel #43
0
 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)
Beispiel #44
0
 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)
Beispiel #45
0
 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)
Beispiel #46
0
 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)
Beispiel #48
0
 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)
Beispiel #49
0
 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)
Beispiel #55
0
 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)