def test_act_tech_troupe_member_view(self):
     troupe = TroupeFactory()
     member = PersonaFactory()
     troupe.membership.add(member)
     act = ActFactory(performer=troupe,
                      submitted=True,
                      b_conference=self.current_conf,
                      accepted=3)
     current_act_context = ActTechInfoContext(
         performer=troupe,
         act=act,
         conference=self.current_conf,
         schedule_rehearsal=True)
     act.tech = TechInfoFactory(
         track_artist="",
         track=SimpleUploadedFile("file.mp3", b"file_content"),
         prop_setup="text",
         starting_position="Onstage",
         primary_color="text",
         feel_of_act="text",
         pronouns="text",
         introduction_text="text")
     act.tech.save()
     event_id = make_act_app_ticket(self.current_conf)
     login_as(member.performer_profile, self)
     url = reverse("home", urlconf="gbe.urls")
     response = self.client.get(url)
     self.assertContains(
         response,
         reverse("act_techinfo_detail",
                 urlconf="gbe.reporting.urls",
                 args=[act.pk]))
 def test_valid_act_payment_received(self):
     privileged_profile = ProfileFactory()
     grant_privilege(
         privileged_profile.user_object,
         'Act Reviewers')
     act = ActFactory()
     tickets = setup_fees(act.b_conference, is_act=True)
     act_params = IPN_POST_PARAMS
     act_params["mc_currency"] = "USD"
     act_params["receiver_email"] = PayPalSettings.objects.first(
         ).business_email
     act_params["custom"] = "%s-%d-User-%d" % (
         "Act",
         act.pk,
         act.performer.contact.user_object.pk)
     act_params["mc_gross"] = 10.00
     ipn_obj = self.assertGotSignal(valid_ipn_received,
                                    params=act_params)
     purchaser = Purchaser.objects.get(
         matched_to_user=act.performer.contact.user_object)
     transaction = Transaction.objects.get(purchaser=purchaser)
     self.assertEqual(transaction.ticket_item, tickets[0])
     self.assertEqual(transaction.invoice, ipn_obj.invoice)
     self.assertEqual(purchaser.first_name, ipn_obj.first_name)
     assert_right_mail_right_addresses(
         0,
         1,
         "Act Submission Occurred",
         [privileged_profile.contact_email])
 def test_low_donation(self):
     privileged_profile = ProfileFactory()
     grant_privilege(
         privileged_profile.user_object,
         'Act Reviewers')
     act = ActFactory()
     tickets = setup_fees(act.b_conference, is_act=True)
     act_params = IPN_POST_PARAMS
     act_params["mc_currency"] = "USD"
     act_params["receiver_email"] = PayPalSettings.objects.first(
         ).business_email
     act_params["custom"] = "%s-%d-User-%d" % (
         "Act",
         act.pk,
         act.performer.contact.user_object.pk)
     act_params["mc_gross"] = "5.00"
     ipn_obj = self.assertGotSignal(valid_ipn_received,
                                    params=act_params)
     msg = assert_right_mail_right_addresses(
         0,
         1,
         "PayPal Purchase Processing Error",
         [admin[1] for admin in settings.ADMINS])
     self.assertTrue("Transaction was not paid" in msg.body)
     self.assertTrue(reverse("admin:%s_%s_change" % (
         "ipn",
         "paypalipn"), args=(ipn_obj.id, )) in msg.body)
Пример #4
0
    def test_act_changestate_authorized_user(self):
        act = ActFactory()
        url = reverse(self.view_name, args=[act.pk], urlconf='gbe.urls')

        login_as(self.privileged_user, self)
        response = self.client.post(url, data=self.data)
        nt.assert_equal(response.status_code, 302)
Пример #5
0
 def test_review_summer_act(self):
     act = ActFactory(b_conference__act_style="summer")
     url = reverse('act_review', urlconf='gbe.urls', args=[act.pk])
     login_as(self.privileged_user, self)
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'The Summer Act')
Пример #6
0
 def test_incomplete_exclude(self):
     dual_context = ClassContext(conference=self.context.conference)
     act = ActFactory(b_conference=self.context.conference,
                      performer=dual_context.teacher,
                      submitted=True,
                      accepted=3)
     second_conference = ClassContext()
     login_as(self.privileged_profile, self)
     data = {
         'email-select-conference':
         [self.context.conference.pk, second_conference.conference.pk],
         'email-select-bid_type': ["Class"],
         'email-select-state': [0, 1, 2, 3, 4, 5],
         'email-select-x_bid_type': ["Act"],
         'email-select-x_state': [0, 1, 2, 3, 4, 5],
         'filter':
         True,
     }
     response = self.client.post(self.url, data=data, follow=True)
     self.assertContains(response,
                         self.context.teacher.contact.user_object.email)
     self.assertContains(
         response, second_conference.teacher.contact.user_object.email)
     self.assertContains(response,
                         dual_context.teacher.contact.user_object.email)
     self.assertContains(response, "Excluded:  0")
Пример #7
0
 def test_send_email_reduced_to_list_no_hack(self):
     reduced_profile = self.reduced_login()
     second_bid = ActFactory(submitted=True)
     random = ProfileFactory()
     data = {
         'to': [
             second_bid.performer.contact.user_object.email,
             random.user_object.email
         ],
         'sender':
         "*****@*****.**",
         'subject':
         "Subject",
         'html_message':
         "<p>Test Message</p>",
         'email-select-conference':
         [self.context.conference.pk, second_bid.b_conference.pk],
         'email-select-bid_type': ['Act'],
         'email-select-state': [0, 1, 2, 3, 4, 5],
         'send':
         True
     }
     response = self.client.post(self.url, data=data, follow=True)
     self.assertContains(
         response, 'Select a valid choice. %s is %s' %
         (random.user_object.email, 'not one of the available choices.'))
Пример #8
0
 def test_edit_act_no_duration(self):
     act = ActFactory()
     act_form = self.get_act_form(act, submit=True)
     del act_form['theact-act_duration']
     response = self.post_edit_paid_act_submission(act_form)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, "This field is required.")
Пример #9
0
 def __init__(self,
              act=None,
              performer=None,
              conference=None,
              room=None,
              starttime=None,
              act_role=''):
     self.performer = performer or PersonaFactory()
     self.conference = conference or ConferenceFactory()
     if not self.conference.conferenceday_set.exists():
         day = ConferenceDayFactory(conference=self.conference)
         if starttime:
             day.day = starttime.date()
             day.save()
     self.days = self.conference.conferenceday_set.all()
     act = act or ActFactory(b_conference=self.conference,
                             performer=self.performer,
                             accepted=3,
                             submitted=True)
     self.acts = [act]
     self.show = ShowFactory(e_conference=self.conference)
     self.room = room or RoomFactory()
     self.sched_event = None
     self.sched_event = self.schedule_instance(room=self.room,
                                               starttime=starttime)
     self.book_act(act, act_role)
Пример #10
0
 def book_act(self, act=None, act_role=''):
     act = act or ActFactory(
         b_conference=self.conference, accepted=3, submitted=True)
     booking = ResourceAllocationFactory(event=self.sched_event,
                                         resource=ActResourceFactory(
                                             _item=act, role=act_role))
     return (act, booking)
Пример #11
0
 def test_send_email_reduced_w_fixed_from(self):
     reduced_profile = self.reduced_login()
     second_bid = ActFactory(submitted=True)
     data = {
         'to':
         second_bid.performer.contact.user_object.email,
         'sender':
         "*****@*****.**",
         'subject':
         "Subject",
         'html_message':
         "<p>Test Message</p>",
         'email-select-conference':
         [self.context.conference.pk, second_bid.b_conference.pk],
         'email-select-bid_type': ['Act'],
         'email-select-state': [0, 1, 2, 3, 4, 5],
         'send':
         True
     }
     response = self.client.post(self.url, data=data, follow=True)
     assert_queued_email(
         [
             second_bid.performer.contact.user_object.email,
         ],
         data['subject'],
         data['html_message'],
         reduced_profile.user_object.email,
         extras=[
             self.get_param,
             reverse('email_update',
                     urlconf='gbe.urls',
                     args=[second_bid.performer.contact.user_object.email])
         ])
Пример #12
0
def post_act_conflict(conference, performer, data, url, testcase):
    original = ActFactory(b_conference=conference, performer=performer)
    login_as(performer.performer_profile, testcase)
    data['theact-b_title'] = original.b_title
    data['theact-b_conference'] = conference.pk
    response = testcase.client.post(url, data=data, follow=True)
    return response, original
Пример #13
0
 def post_title_collision(self):
     original = ActFactory()
     url = reverse(self.view_name, args=[original.pk], urlconf="gbe.urls")
     make_act_app_purchase(original.b_conference,
                           original.performer.performer_profile.user_object)
     return post_act_conflict(original.b_conference, original.performer,
                              self.get_act_form(original, submit=True), url,
                              self)
Пример #14
0
 def test_unbooked_performer(self):
     '''
         Submitted an act, didn't make it to a show
     '''
     act = ActFactory(b_conference=self.conference)
     profile = act.performer.performer_profile
     result = profile.get_roles(self.conference)
     nt.assert_equal(len(result), 0)
Пример #15
0
 def test_acts_to_review(self):
     staff_profile = ProfileFactory(user_object__is_staff=True)
     grant_privilege(staff_profile, "Act Reviewers")
     login_as(staff_profile, self)
     act = ActFactory(submitted=True, b_conference=self.current_conf)
     url = reverse('home', urlconf='gbe.urls')
     response = self.client.get(url)
     nt.assert_true(act.b_title in response.content)
Пример #16
0
 def post_edit_paid_act_draft(self):
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")
     login_as(act.performer.contact, self)
     act_form = self.get_act_form(act)
     act_form['draft'] = True
     response = self.client.post(url, act_form, follow=True)
     return response
Пример #17
0
 def test_unbooked_performer(self):
     '''
         Submitted an act, didn't make it to a show
     '''
     act = ActFactory()
     profile = act.performer.performer_profile
     result = profile.has_role_in_event("Performer", self.booking)
     nt.assert_false(result)
Пример #18
0
 def post_edit_paid_act_draft(self):
     act = ActFactory(b_conference=self.current_conference)
     url = reverse(self.edit_name, args=[act.pk], urlconf="gbe.urls")
     login_as(act.performer.contact, self)
     data = self.get_act_form()
     data['theact-performer'] = act.performer.pk
     response = self.client.post(url, data, follow=True)
     return response
Пример #19
0
    def test_edit_act_profile_is_not_contact(self):
        user = PersonaFactory().performer_profile.user_object
        act = ActFactory()
        url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")

        login_as(user, self)
        response = self.client.get(url, follow=True)
        self.assertEqual(response.status_code, 404)
Пример #20
0
 def test_edit_act_user_has_no_profile(self):
     user = UserFactory()
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")
     login_as(user, self)
     response = self.client.post(url,
                                 data=self.get_act_form(act, submit=True))
     self.assertEqual(response.status_code, 302)
    def test_submit_act_not_owner(self):
        act = ActFactory()
        url = reverse(self.view_name, args=[act.pk], urlconf='gbe.urls')

        login_as(ProfileFactory(), self)
        response = self.client.get(url)
        error_string = "Error: You don&#x27;t own that act."
        self.assertContains(response, error_string)
Пример #22
0
 def test_act_edit_post_form_not_valid(self):
     '''act_edit, if form not valid, should return to ActEditForm'''
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")
     login_as(act.performer.performer_profile, self)
     response = self.client.post(url, self.get_act_form(act, invalid=True))
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Propose an Act')
 def test_withdrawn_act(self):
     act = ActFactory(accepted=4)
     login_as(self.profile, self)
     response = self.client.get(
         reverse(self.view_name,
                 urlconf='gbe.reporting.urls',
                 args=[act.id]))
     self.assertContains(response, "Act state is Withdrawn")
 def test_submit_act(self):
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf='gbe.urls')
     login_as(act.performer.performer_profile, self)
     response = self.client.get(url, follow=True)
     self.assertRedirects(response, reverse('home', urlconf='gbe.urls'))
     self.assertContains(response, "Welcome to GBE")
     self.assertEqual(response.status_code, 200)
Пример #25
0
    def test_edit_bid_w_redirect_other_way(self):
        '''edit_bid, not post, should take us to edit process'''
        act = ActFactory()
        url = reverse(self.edit_name, args=[act.pk], urlconf="gbe.urls")

        login_as(act.performer.contact, self)
        response = self.client.get(url)
        self.assertRedirects(
            response, reverse("act_edit", args=[act.pk], urlconf="gbe.urls"))
Пример #26
0
 def test_act_submit_paid_act_w_old_comp_act(self):
     prev_act = ActFactory(
         submitted=True,
         performer=self.performer,
         b_conference=ConferenceFactory(status='completed'))
     response, data = self.post_paid_act_submission()
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, "View</a> act")
     self.assertContains(response, data['theact-b_title'])
Пример #27
0
 def test_submit_act(self):
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf='gbe.urls')
     login_as(act.performer.performer_profile, self)
     response = self.client.get(url, follow=True)
     redirect = ('http://testserver/gbe', 302)
     nt.assert_true(redirect in response.redirect_chain)
     nt.assert_true("Profile View" in response.content)
     nt.assert_equal(response.status_code, 200)
Пример #28
0
 def test_review_act_old_act(self):
     conference = ConferenceFactory(status="completed",
                                    accepting_bids=False)
     act = ActFactory(b_conference=conference)
     url = reverse('act_review', urlconf='gbe.urls', args=[act.pk])
     login_as(self.privileged_user, self)
     response = self.client.get(url, follow=True)
     self.assertRedirects(
         response, reverse('act_view', urlconf='gbe.urls', args=[act.pk]))
     self.assertContains(response, 'Review Bids')
Пример #29
0
 def test_act_submit_second_paid_act(self):
     prev_act = ActFactory(submitted=True,
                           performer=self.performer,
                           b_conference=self.current_conference)
     make_act_app_purchase(self.current_conference,
                           self.performer.performer_profile.user_object)
     response, data = self.post_paid_act_submission()
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, "View</a> act")
     self.assertContains(response, data['theact-b_title'])
Пример #30
0
 def test_act_was_reviewed(self):
     staff_profile = ProfileFactory(user_object__is_staff=True)
     grant_privilege(staff_profile, "Act Reviewers")
     login_as(staff_profile, self)
     reviewed_act = ActFactory(submitted=True,
                               b_conference=self.current_conf)
     FlexibleEvaluationFactory(bid=reviewed_act, evaluator=staff_profile)
     url = reverse('home', urlconf='gbe.urls')
     response = self.client.get(url)
     self.assertNotContains(response, reviewed_act.b_title)
Пример #31
0
 def setUp(self):
     self.url = reverse(
         self.view_name,
         urlconf='gbe.urls')
     self.factory = RequestFactory()
     self.client = Client()
     self.performer = PersonaFactory()
     self.privileged_profile = ProfileFactory()
     self.privileged_user = self.privileged_profile.user_object
     grant_privilege(self.privileged_user, 'Act Reviewers')
     self.conference = current_conference()
     self.acts = ActFactory.create_batch(
         4,
         b_conference=self.conference,
         submitted=True)