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)
 def test_no_main_ticket(self):
     privileged_profile = ProfileFactory()
     grant_privilege(
         privileged_profile.user_object,
         'Vendor Reviewers')
     vendor = VendorFactory()
     profile = vendor.business.owners.all().first()
     tickets = setup_fees(vendor.b_conference, is_vendor=True)
     vendor_params = IPN_POST_PARAMS
     vendor_params["receiver_email"] = PayPalSettings.objects.first(
         ).business_email
     vendor_params["custom"] = "%s-%d-User-%d" % (
         "Vendor",
         vendor.pk,
         profile.user_object.pk)
     cost = 0
     for ticket in tickets:
         cost = cost + ticket.cost
     vendor_params["mc_currency"] = "USD"
     vendor_params["mc_gross"] = cost
     vendor_params["item_number"] = str(tickets[1].pk)
     ipn_obj = self.assertGotSignal(valid_ipn_received,
                                    params=vendor_params)
     msg = assert_right_mail_right_addresses(
         0,
         1,
         "PayPal Purchase Processing Error",
         [admin[1] for admin in settings.ADMINS])
     self.assertTrue("Add ons received without a main ticket" in msg.body)
     self.assertTrue(reverse("admin:%s_%s_change" % (
         "ipn",
         "paypalipn"), args=(ipn_obj.id, )) in msg.body)
示例#4
0
 def test_act_bid_not_paid(self):
     '''act_bid, not post, not paid should take us to bid process'''
     tickets = setup_fees(self.current_conference, is_act=True)
     login_as(self.performer.performer_profile, self)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Propose an Act')
     self.assertContains(response, "Fee (pay what you will)")
示例#5
0
 def test_act_bid_not_paid_w_fee_outside_date_limit(self):
     '''act_bid, several viable tickets are before and after current day'''
     tickets_shown = setup_fees(self.current_conference, is_act=True)
     ticket_later = setup_fees(self.current_conference, is_act=True)
     ticket_sooner = setup_fees(self.current_conference, is_act=True)
     ticket_later[0].start_time = datetime.now() + timedelta(days=3)
     ticket_later[0].cost = tickets_shown[0].cost - 1
     ticket_sooner[0].end_time = datetime.now() - timedelta(days=3)
     ticket_later[0].cost = tickets_shown[0].cost - 2
     ticket_later[0].save()
     ticket_sooner[0].save()
     login_as(self.performer.performer_profile, self)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Propose an Act')
     self.assertContains(response, "Fee (pay what you will)")
     self.assertContains(response, 'value="%5.2f"' % tickets_shown[0].cost)
示例#6
0
 def test_act_bid_post_submit_no_payment(self):
     '''act_bid, if user has not paid, should take us to please_pay'''
     login_as(self.performer.performer_profile, self)
     tickets = setup_fees(self.current_conference, is_act=True)
     POST = self.get_act_form()
     POST.update({'submit': '', 'donation': 10})
     response = self.client.post(self.url, data=POST)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, "Act Submission Fee")
示例#7
0
 def test_act_edit_post_form_submit_unpaid(self):
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")
     tickets = setup_fees(act.b_conference, is_act=True)
     login_as(act.performer.performer_profile, self)
     act_form = self.get_act_form(act, submit=True)
     act_form['donation'] = 10
     response = self.client.post(url, data=act_form)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, "Act Submission Fee")
     self.assertContains(response, payment_needed_msg)
示例#8
0
 def test_vendor_edit_post_form_valid_submit_bad_pay_choice(self):
     vendor = VendorFactory(business=self.business)
     tickets = setup_fees(vendor.b_conference, is_vendor=True)
     login_as(self.profile, self)
     url = reverse(self.view_name, urlconf='gbe.urls', args=[vendor.pk])
     data = self.get_vendor_form(submit=True)
     data['main_ticket'] = tickets[0].pk + 1000
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, payment_details_error)
     self.assertContains(response, "Select a valid choice.")
    def test_create_vendor_post_form_valid_submit(self):
        url = reverse(self.view_name, urlconf='gbe.urls')
        login_as(self.profile, self)
        tickets = setup_fees(self.conference, is_vendor=True)

        data = self.get_form(submit=True)
        data['main_ticket'] = tickets[0].pk
        response = self.client.post(url,
                                    data,
                                    follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'Fee has not been Paid')
示例#10
0
 def test_act_bid_not_paid_w_fee_within_date_limit(self):
     '''act_bid, not post, show the ticket price in active range'''
     tickets = setup_fees(self.current_conference, is_act=True)
     tickets[0].start_time = datetime.now() - timedelta(days=5)
     tickets[0].end_time = datetime.now() + timedelta(days=5)
     tickets[0].save()
     login_as(self.performer.performer_profile, self)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, 'Propose an Act')
     self.assertContains(response, "Fee (pay what you will)")
     self.assertContains(response, 'value="%5.2f"' % tickets[0].cost)
示例#11
0
    def test_vendor_edit_post_form_valid_submit_no_main_ticket(self):
        vendor = VendorFactory(business=self.business)

        tickets = setup_fees(vendor.b_conference, is_vendor=True)
        login_as(self.profile, self)
        url = reverse(self.view_name, urlconf='gbe.urls', args=[vendor.pk])
        data = self.get_vendor_form(submit=True)
        data['add_ons'] = tickets[1].pk
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, payment_details_error)
        self.assertContains(response, "This field is required.")
示例#12
0
 def test_act_edit_post_form_submit_bad_pay_choice(self):
     act = ActFactory()
     url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")
     tickets = setup_fees(act.b_conference, is_act=True)
     login_as(act.performer.performer_profile, self)
     act_form = self.get_act_form(act, submit=True)
     act_form['donation'] = 5
     response = self.client.post(url, data=act_form)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, payment_details_error)
     self.assertContains(
         response, "Ensure this value is greater than or equal to 10.00")
示例#13
0
    def test_act_edit_post_form_submit_paid_other_year(self):
        act = ActFactory()
        make_act_app_purchase(ConferenceFactory(status="completed"),
                              act.performer.performer_profile.user_object)
        tickets = setup_fees(act.b_conference, is_act=True)

        url = reverse(self.view_name, args=[act.pk], urlconf="gbe.urls")
        login_as(act.performer.performer_profile, self)
        act_form = self.get_act_form(act, submit=True)
        act_form['donation'] = 10
        response = self.client.post(url, data=act_form)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'Act Payment')
示例#14
0
 def test_edit_paid_bid_get(self):
     '''edit_bid, not post, should take us to edit process'''
     vendor = VendorFactory(business=self.business)
     tickets = setup_fees(vendor.b_conference, is_vendor=True)
     make_vendor_app_purchase(vendor.b_conference, self.profile.user_object)
     login_as(self.profile, self)
     url = reverse(self.view_name, urlconf='gbe.urls', args=[vendor.pk])
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response,
                         '<h2 class="gbe-title">Vendor Application</h2>',
                         html=True)
     self.assertContains(response, 'value="Submit For Approval"')
     self.assertNotContains(response, tickets[0].title)
     self.assertNotContains(response, tickets[1].title)
示例#15
0
    def test_vendor_edit_post_form_valid_submit_paid_wrong_conf(self):
        vendor = VendorFactory(business=self.business)
        tickets = setup_fees(vendor.b_conference, is_vendor=True)

        make_vendor_app_purchase(ConferenceFactory(status="completed"),
                                 self.profile.user_object)
        login_as(self.profile, self)
        url = reverse(self.view_name, urlconf='gbe.urls', args=[vendor.pk])
        data = self.get_vendor_form(submit=True)
        data['main_ticket'] = tickets[0].pk
        data['add_ons'] = tickets[1].pk
        response = self.client.post(url, data, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, 'Fee has not been Paid')
        self.assertContains(response, tickets[0].title)
        self.assertContains(response, tickets[1].title)
 def test_act_submit_act_succeed(self):
     tickets = setup_fees(self.current_conference, is_act=True)
     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]))
     self.assertContains(response, just_made.b_title)
     assert_alert_exists(response, 'success', 'Success',
                         default_act_submit_msg)
     self.assertTrue(
         Transaction.objects.filter(
             purchaser__matched_to_user=just_made.performer.contact.
             user_object,
             ticket_item__ticketing_event__act_submission_event=True,
             ticket_item__ticketing_event__conference=self.
             current_conference).exists())
示例#17
0
 def test_edit_bid_get(self):
     '''edit_bid, not post, should take us to edit process'''
     msg = UserMessageFactory(view='MakeVendorView',
                              code='FEE_MESSAGE',
                              summary="Vendor Bid Instructions",
                              description="Test Fee Instructions Message")
     vendor = VendorFactory(business=self.business)
     tickets = setup_fees(vendor.b_conference, is_vendor=True)
     login_as(self.profile, self)
     url = reverse(self.view_name, urlconf='gbe.urls', args=[vendor.pk])
     response = self.client.get(url)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response,
                         '<h2 class="gbe-title">Vendor Application</h2>',
                         html=True)
     self.assertContains(response, "Test Fee Instructions Message")
     self.assertContains(response, tickets[0].title)
     self.assertContains(response, tickets[1].cost)
 def test_valid_vendor_payment_already_submitted(self):
     privileged_profile = ProfileFactory()
     grant_privilege(
         privileged_profile.user_object,
         'Vendor Reviewers')
     vendor = VendorFactory(submitted=True)
     profile = vendor.business.owners.all().first()
     tickets = setup_fees(vendor.b_conference, is_vendor=True)
     vendor_params = IPN_POST_PARAMS
     vendor_params["receiver_email"] = PayPalSettings.objects.first(
         ).business_email
     vendor_params["custom"] = "%s-%d-User-%d" % (
         "Vendor",
         vendor.pk,
         profile.user_object.pk)
     cost = 0
     for ticket in tickets:
         cost = cost + ticket.cost
     vendor_params["mc_currency"] = "USD"
     vendor_params["mc_gross"] = cost
     vendor_params["item_number"] = str(tickets[0].pk)
     ipn_obj = self.assertGotSignal(valid_ipn_received,
                                    params=vendor_params)
     self.assertEqual(Purchaser.objects.filter(
         matched_to_user=profile.user_object).count(), 1)
     self.assertEqual(Transaction.objects.filter(
         purchaser__matched_to_user=profile.user_object).count(), 1)
     msg = assert_right_mail_right_addresses(
         0,
         2,
         "PayPal Purchase Processing Error",
         [admin[1] for admin in settings.ADMINS])
     self.assertTrue(
         "Payment recieved for a bid that has already been " +
         "submitted.  Bid name: %s, Bid Type: %s, Bid PK: %s" % (
             vendor.b_title,
             "Vendor",
             vendor.pk))
     self.assertTrue(reverse("admin:%s_%s_change" % (
         "ipn",
         "paypalipn"), args=(ipn_obj.id, )) in msg.body)
 def test_valid_vendor_payment_received(self):
     privileged_profile = ProfileFactory()
     grant_privilege(
         privileged_profile.user_object,
         'Vendor Reviewers')
     vendor = VendorFactory()
     profile = vendor.business.owners.all().first()
     tickets = setup_fees(vendor.b_conference, is_vendor=True)
     vendor_params = IPN_POST_PARAMS
     vendor_params["receiver_email"] = PayPalSettings.objects.first(
         ).business_email
     vendor_params["custom"] = "%s-%d-User-%d" % (
         "Vendor",
         vendor.pk,
         profile.user_object.pk)
     cost = 0
     for ticket in tickets:
         cost = cost + ticket.cost
     vendor_params["mc_currency"] = "USD"
     vendor_params["mc_gross"] = cost
     vendor_params["item_number"] = "%d %d" % (tickets[0].pk, tickets[1].pk)
     ipn_obj = self.assertGotSignal(valid_ipn_received,
                                    params=vendor_params)
     self.assertTrue(Purchaser.objects.filter(
         matched_to_user=profile.user_object).exists())
     purchaser = Purchaser.objects.get(
         matched_to_user=profile.user_object)
     self.assertEqual(purchaser.first_name, ipn_obj.first_name)
     transactions = Transaction.objects.filter(purchaser=purchaser)
     for ticket in tickets:
         self.assertTrue(transactions.filter(ticket_item=ticket).exists())
         self.assertEqual(
             transactions.filter(ticket_item=ticket).first().invoice,
             ipn_obj.invoice)
     assert_right_mail_right_addresses(
         0,
         1,
         "Vendor Submission Occurred",
         [privileged_profile.contact_email])
    def test_bad_reciever(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"] = "*****@*****.**"

        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(
            "Email not valid: %s" % ipn_obj.receiver_email in msg.body)
        self.assertTrue(reverse("admin:%s_%s_change" % (
            "ipn",
            "paypalipn"), args=(ipn_obj.id, )) in msg.body)