コード例 #1
0
ファイル: test_event_views.py プロジェクト: judy2k/pipsevents
    def test_users_disclaimer_status_in_context(self):
        user = mommy.make_recipe('booking.user')

        resp = self._get_response(user, 'events')
        # user has no disclaimer
        self.assertIsNone(resp.context_data.get('disclaimer'))
        self.assertIn(
            'Please note that you will need to complete a disclaimer form '
            'before booking',
            format_content(resp.rendered_content)
        )

        mommy.make_recipe('booking.online_disclaimer', user=user)
        resp = self._get_response(user, 'events')
        self.assertTrue(resp.context_data.get('disclaimer'))
        self.assertNotIn(
            'Please note that you will need to complete a disclaimer form '
            'before booking',
            format_content(resp.rendered_content)
        )

        OnlineDisclaimer.objects.all().delete()
        mommy.make(PrintDisclaimer, user=user)
        resp = self._get_response(user, 'events')
        self.assertTrue(resp.context_data.get('disclaimer'))
        self.assertNotIn(
            'Please note that you will need to complete a disclaimer form '
            'before booking',
            format_content(resp.rendered_content)
        )
コード例 #2
0
    def test_create_event_with_non_default_paypal_email(self):
        form_data = self.form_data({
            'paypal_email': '*****@*****.**',
            'paypal_email_check': '*****@*****.**'
        })
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(reverse('studioadmin:add_session'),
                                form_data,
                                follow=True)

        self.assertIn(
            "You have changed the paypal receiver email from the default value. "
            "If you haven't used "
            "this email before, it is strongly recommended that you test the "
            "email address here",
            format_content(str(resp.content)).replace('\\', ''))
        self.assertIn(
            "/studioadmin/[email protected]",
            str(resp.content))

        session = Session.objects.latest('id')
        self.assertEqual(session.paypal_email, '*****@*****.**')

        form_data = self.form_data()
        resp = self.client.post(reverse('studioadmin:add_session'),
                                form_data,
                                follow=True)
        self.assertNotIn(
            "You have changed the paypal receiver email from the default value.",
            format_content(str(resp.content)).replace('\\', ''))
        session1 = Session.objects.latest('id')
        self.assertEqual(session1.paypal_email, settings.DEFAULT_PAYPAL_EMAIL)
コード例 #3
0
    def test_block_type_id_user_display(self):
        bt1 = mommy.make_recipe(
            'booking.blocktype5', event_type__subtype='Test1',
            identifier='transferred'
        )
        mommy.make_recipe('booking.block', block_type=bt1, user=self.user)
        bt2 = mommy.make_recipe(
            'booking.blocktype5', event_type__subtype='Test2',
            identifier='free class'
        )
        mommy.make_recipe('booking.block', block_type=bt2, user=self.user)

        bt3 = mommy.make_recipe(
            'booking.blocktype5', event_type__subtype='Test3',
            identifier='transferred'
        )
        booking = mommy.make_recipe(
            'booking.booking', event__name='Test event',
            event__date=datetime(
                year=2015, month=1, day=12, tzinfo=timezone.utc
            ), status='CANCELLED'
        )
        mommy.make_recipe(
            'booking.block', block_type=bt3, user=self.user,
            transferred_booking_id=booking.id
        )
        bt4 = mommy.make_recipe(
            'booking.blocktype5', event_type__subtype='Test4',
        )
        mommy.make_recipe(
            'booking.block', block_type=bt4, user=self.user,
        )

        self.client.login(username=self.user.username, password='******')
        resp = self.client.get(reverse('booking:block_list'))

        self.assertIn(
            'Test1 (transferred)', format_content(resp.rendered_content)
        )
        self.assertIn(
            'Test2 (free class)', format_content(resp.rendered_content)
        )
        self.assertIn(
            'Test3 (transferred from Test event 12Jan15)',
            format_content(resp.rendered_content)
        )
        self.assertIn('Test4', format_content(resp.rendered_content))
        self.assertNotIn('Test4 (', format_content(resp.rendered_content))
コード例 #4
0
    def test_can_update_booking_to_unattended(self):
        self.booking1.attended = True
        self.booking1.save()
        self.booking2.attended = True
        self.booking2.save()

        formset_data = self.formset_data({
            'bookings-0-attended': False,
            'bookings-1-attended': False,
            'formset_submitted': 'Save changes'
        })

        url = reverse(
            'studioadmin:event_register', args=[self.event.slug, 'OPEN']
            )
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(url, formset_data, follow=True)

        self.booking1.refresh_from_db()
        self.booking2.refresh_from_db()
        self.assertFalse(self.booking1.attended)
        self.assertFalse(self.booking2.attended)

        content = format_content(resp.rendered_content)

        self.assertIn(
            'Booking changed to unattended for users {}, {}'.format(
                self.booking1.user.username, self.booking2.user.username
            ), content
        )
コード例 #5
0
    def test_update_paypal_email_to_non_default(self):
        form_data = self.form_data(
            self.session,
            {
                'paypal_email': '*****@*****.**',
                'paypal_email_check': '*****@*****.**'
            }
        )
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(
            reverse('studioadmin:edit_session', args=[self.session.id]),
            form_data, follow=True
        )

        self.assertIn(
            "You have changed the paypal receiver email. If you haven't used "
            "this email before, it is strongly recommended that you test the "
            "email address here",
            format_content(str(resp.content)).replace('\\', '')
        )
        self.assertIn(
            "/studioadmin/[email protected]",
            str(resp.content)
        )

        self.session.refresh_from_db()
        self.assertEqual(self.session.paypal_email, '*****@*****.**')
コード例 #6
0
    def test_print_with_invalid_date_format(self):
        mommy.make_recipe(
            'booking.future_EV',
            date=datetime(
                year=2015, month=9, day=7,
                hour=18, minute=0, tzinfo=timezone.utc
            ),
        )
        url = reverse('studioadmin:register-day')
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(
            url,
            {
                'register_date': 'Mon 33 Sep 2015',
                'exclude_ext_instructor': True,
                'register_format': 'full',
                'print': 'print'
            },
            follow=True
        )

        content = format_content(resp.rendered_content)
        self.assertIn(
            'Please correct the following errors: register_date',
            content
        )
コード例 #7
0
    def test_cannot_update_booking_to_attended_and_no_show(self):

        formset_data = self.formset_data({
            'bookings-0-attended': True,
            'bookings-0-no_show': True,
            'formset_submitted': 'Save changes'
        })

        url = reverse(
            'studioadmin:event_register', args=[self.event.slug, 'OPEN']
            )
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(url, formset_data, follow=True)

        self.booking1.refresh_from_db()
        self.assertFalse(self.booking1.attended)
        self.assertFalse(self.booking2.attended)

        content = format_content(resp.rendered_content)

        self.assertIn(
            'Please correct the following errors:__all__Booking cannot be '
            'both attended and no-show',
            content
        )
コード例 #8
0
    def test_no_events_selected_to_print(self):
        events = mommy.make_recipe(
            'booking.future_EV',
            date=datetime(
                year=2015, month=9, day=7,
                hour=18, minute=0, tzinfo=timezone.utc
            ),
            _quantity=3
        )

        url = reverse('studioadmin:register-day')
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(
            url,
            {
                'register_date': 'Mon 07 Sep 2015',
                'exclude_ext_instructor': True,
                'register_format': 'full',
                'print': 'print'
            },
            follow=True
        )
        self.assertEqual(Event.objects.count(), 3)

        content = format_content(resp.rendered_content)
        self.assertIn(
            'Please select at least one register to print',
            content
        )
コード例 #9
0
    def test_with_no_changes(self):
        url = reverse('studioadmin:edit_voucher', args=[self.voucher.id])
        self.assertTrue(
            self.client.login(username=self.staff_user.username,
                              password='******'))
        resp = self.client.post(url, self.data, follow=True)
        self.voucher.refresh_from_db()

        self.assertIn('No changes made', format_content(resp.rendered_content))
コード例 #10
0
    def test_disclaimer_in_context(self):
        """
        Test correct context returned for user disclaimer
        """
        event = mommy.make_recipe(
            'booking.future_PC', name='Pole', cost=10, booking_open=True,
        )
        user_no_disclaimer = mommy.make_recipe('booking.user')
        user_print_disclaimer = mommy.make_recipe('booking.user')
        user_online_disclaimer = mommy.make_recipe('booking.user')
        mommy.make_recipe(
            'booking.online_disclaimer', user=user_online_disclaimer
        )
        PrintDisclaimer.objects.create(user=user_print_disclaimer)

        resp = self._get_response(user_no_disclaimer, event, 'lesson')
        self.assertFalse(resp.context_data['disclaimer'])
        self.assertIn(
            'Please note that you will need to complete a disclaimer form '
            'before booking',
            format_content(resp.rendered_content)
        )
        self.assertEqual(
            "<strong>Please complete a <a href='{}' "
            "target=_blank>disclaimer form</a> before "
            "booking.</strong>".format(reverse('disclaimer_form')),
            resp.context_data['booking_info_text'],
        )

        resp = self._get_response(user_online_disclaimer, event, 'lesson')
        self.assertTrue(resp.context_data['disclaimer'])
        self.assertNotIn(
            'Please note that you will need to complete a disclaimer form '
            'before booking',
            format_content(resp.rendered_content)
        )

        resp = self._get_response(user_print_disclaimer, event, 'lesson')
        self.assertTrue(resp.context_data['disclaimer'])
        self.assertNotIn(
            'Please note that you will need to complete a disclaimer form '
            'before booking',
            format_content(resp.rendered_content)
        )
コード例 #11
0
    def test_post_with_no_changes_booking(self):
        formset_data = self.formset_data({
            'formset_submitted': 'Save changes'
        })

        url = reverse(
            'studioadmin:event_register', args=[self.event.slug, 'OPEN']
            )
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(url, formset_data, follow=True)
        content = format_content(resp.rendered_content)
        self.assertIn('No changes were made', content)
コード例 #12
0
    def test_update_voucher(self):
        url = reverse('studioadmin:edit_voucher', args=[self.voucher.id])
        self.assertTrue(
            self.client.login(username=self.staff_user.username,
                              password='******'))
        self.data.update(code='new_test_code')
        resp = self.client.post(url, self.data, follow=True)
        self.voucher.refresh_from_db()
        self.assertEqual(self.voucher.code, 'new_test_code')

        self.assertIn('Voucher with code new_test_code has been updated!',
                      format_content(resp.rendered_content))
コード例 #13
0
    def test_create_voucher(self):
        self.assertTrue(
            self.client.login(username=self.staff_user.username,
                              password='******'))
        self.assertFalse(EventVoucher.objects.exists())
        resp = self.client.post(self.url, self.data, follow=True)
        self.assertEquals(EventVoucher.objects.count(), 1)
        voucher = EventVoucher.objects.first()
        self.assertEqual(voucher.code, 'test_code')

        self.assertIn('Voucher with code test_code has been created!',
                      format_content(resp.rendered_content))
コード例 #14
0
    def test_user_password_incorrect(self):
        encoded_user_id = int_str(chaffify(self.user.id))
        update_url = reverse('studioadmin:update_user_disclaimer',
                             args=[encoded_user_id])
        self.post_data['password'] = '******'

        self.assertTrue(
            self.client.login(username=self.staff_user.username,
                              password='******'))
        resp = self.client.post(update_url, self.post_data, follow=True)
        self.assertIn('Password is incorrect',
                      format_content(resp.rendered_content))
コード例 #15
0
    def test_create_event_with_non_default_paypal_email(self):
        form_data = self.form_data(
            {
                'paypal_email': '*****@*****.**',
                'paypal_email_check': '*****@*****.**'
            }
        )
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(
            reverse('studioadmin:add_session'),
            form_data, follow=True
        )

        self.assertIn(
            "You have changed the paypal receiver email from the default value. "
            "If you haven't used "
            "this email before, it is strongly recommended that you test the "
            "email address here",
            format_content(str(resp.content)).replace('\\', '')
        )
        self.assertIn(
            "/studioadmin/[email protected]",
            str(resp.content)
        )

        session = Session.objects.latest('id')
        self.assertEqual(session.paypal_email, '*****@*****.**')

        form_data = self.form_data()
        resp = self.client.post(
            reverse('studioadmin:add_session'),
            form_data, follow=True
        )
        self.assertNotIn(
            "You have changed the paypal receiver email from the default value.",
            format_content(str(resp.content)).replace('\\', '')
        )
        session1 = Session.objects.latest('id')
        self.assertEqual(session1.paypal_email, settings.DEFAULT_PAYPAL_EMAIL)
コード例 #16
0
    def test_user_password_incorrect(self):
        encoded_user_id = int_str(chaffify(self.user.id))
        update_url = reverse(
            'studioadmin:update_user_disclaimer', args=[encoded_user_id]
        )
        self.post_data['password'] = '******'

        self.assertTrue(
            self.client.login(username=self.staff_user.username, password='******')
        )
        resp = self.client.post(update_url, self.post_data, follow=True)
        self.assertIn(
            'Password is incorrect', format_content(resp.rendered_content)
        )
コード例 #17
0
    def test_with_no_changes(self):
        url = reverse('studioadmin:edit_voucher', args=[self.voucher.id])
        self.assertTrue(
            self.client.login(
                username=self.staff_user.username, password='******'
            )
        )
        resp = self.client.post(url, self.data, follow=True)
        self.voucher.refresh_from_db()

        self.assertIn(
            'No changes made',
            format_content(resp.rendered_content)
        )
コード例 #18
0
 def test_event_register_list_shows_correct_booking_count(self):
     event = mommy.make_recipe('booking.future_EV')
     mommy.make_recipe('booking.booking', event=event, _quantity=2)
     mommy.make_recipe('booking.booking', event=event, status='CANCELLED')
     mommy.make_recipe('booking.booking', event=event, no_show=True)
     resp = self._get_response(self.staff_user, 'events')
     self.assertIn(
         '{} {} 2'.format(
             event.date.astimezone(
                 pytz.timezone('Europe/London')
             ).strftime('%a %d %b, %H:%M'), event.name
         ),
         format_content(resp.rendered_content)
     )
コード例 #19
0
 def test_update_no_changes(self):
     self.client.login(username=self.staff_user.username, password='******')
     form_data = self.form_data(
         self.session, {
             'max_participants': self.session.max_participants,
             'cost': self.session.cost,
             'booking_open': self.session.booking_open,
             'payment_open': self.session.payment_open,
             'advance_payment_required':
             self.session.advance_payment_required,
         })
     resp = self.client.post(reverse('studioadmin:edit_session',
                                     args=[self.session.id]),
                             form_data,
                             follow=True)
     self.assertIn('No changes made', format_content(str(resp.content)))
コード例 #20
0
    def test_update_voucher(self):
        url = reverse('studioadmin:edit_voucher', args=[self.voucher.id])
        self.assertTrue(
            self.client.login(
                username=self.staff_user.username, password='******'
            )
        )
        self.data.update(code='new_test_code')
        resp = self.client.post(url, self.data, follow=True)
        self.voucher.refresh_from_db()
        self.assertEqual(self.voucher.code, 'new_test_code')

        self.assertIn(
            'Voucher with code new_test_code has been updated!',
            format_content(resp.rendered_content)
        )
コード例 #21
0
    def test_create_voucher(self):
        self.assertTrue(
            self.client.login(
                username=self.staff_user.username, password='******'
            )
        )
        self.assertFalse(EventVoucher.objects.exists())
        resp = self.client.post(self.url, self.data, follow=True)
        self.assertEquals(EventVoucher.objects.count(), 1)
        voucher = EventVoucher.objects.first()
        self.assertEqual(voucher.code, 'test_code')

        self.assertIn(
            'Voucher with code test_code has been created!',
            format_content(resp.rendered_content)
        )
コード例 #22
0
 def test_update_no_changes(self):
     self.client.login(username=self.staff_user.username, password='******')
     form_data = self.form_data(
         self.session,
         {
             'max_participants': self.session.max_participants,
             'cost': self.session.cost,
             'booking_open': self.session.booking_open,
             'payment_open': self.session.payment_open,
             'advance_payment_required': self.session.advance_payment_required,
         }
     )
     resp = self.client.post(
         reverse('studioadmin:edit_session', args=[self.session.id]),
         form_data, follow=True
     )
     self.assertIn('No changes made', format_content(str(resp.content)))
コード例 #23
0
ファイル: test_admin.py プロジェクト: judy2k/pipsevents
    def test_cancelling_booking_on_block(self):
        self.client.login(username=self.superuser.username, password='******')

        user = mommy.make_recipe('booking.user')
        block = mommy.make_recipe('booking.block_5', paid=True, user=user)
        event = mommy.make_recipe('booking.future_PC',
                                  event_type=block.block_type.event_type)
        booking = mommy.make_recipe('booking.booking',
                                    user=user,
                                    event=event,
                                    block=block,
                                    status='OPEN')

        url = reverse('admin:booking_block_change', args=[block.id])
        data = {
            'user': user.id,
            'block_type': block.block_type.id,
            'start_date_0': block.start_date.strftime('%d/%m/%Y'),
            'start_date_1': block.start_date.strftime('%H:%M:%S'),
            'paid': block.paid,
            'bookings-TOTAL_FORMS': 1,
            'bookings-INITIAL_FORMS': 1,
            'bookings-0-id': booking.id,
            'bookings-0-event': event.id,
            'bookings-0-status': 'CANCELLED'
        }

        self.assertEqual(block.bookings.count(), 1)
        self.assertEqual(booking.block, block)
        self.assertTrue(booking.paid)

        resp = self.client.post(url, data, follow=True)
        self.assertEqual(block.bookings.count(), 0)

        booking.refresh_from_db()
        self.assertIsNone(booking.block)
        self.assertFalse(booking.paid)
        self.assertFalse(booking.payment_confirmed)
        self.assertEqual(booking.status, 'CANCELLED')

        content = format_content(resp.rendered_content)
        self.assertIn(
            'Booking {} with user {} and event {} has been cancelled, set to '
            'unpaid and disassociated from block {}.'.format(
                booking.id, user.username, event, block.id), content)
コード例 #24
0
 def test_update_paypal_email_to_default(self):
     self.client.login(username=self.staff_user.username, password='******')
     self.session.paypal_email = '*****@*****.**'
     self.session.save()
     form_data = self.form_data(
         self.session, {
             'paypal_email': settings.DEFAULT_PAYPAL_EMAIL,
             'paypal_email_check': settings.DEFAULT_PAYPAL_EMAIL
         })
     resp = self.client.post(reverse('studioadmin:edit_session',
                                     args=[self.session.id]),
                             form_data,
                             follow=True)
     self.assertNotIn("You have changed the paypal receiver email.",
                      format_content(str(resp.content)).replace('\\', ''))
     self.session.refresh_from_db()
     self.assertEqual(self.session.paypal_email,
                      settings.DEFAULT_PAYPAL_EMAIL)
コード例 #25
0
    def test_create_block_voucher(self):
        self.assertTrue(
            self.client.login(username=self.staff_user.username,
                              password='******'))
        self.assertFalse(BlockVoucher.objects.exists())
        block_type = mommy.make_recipe('booking.blocktype')
        url = reverse('studioadmin:add_block_voucher')
        data = self.data.copy()
        del data['event_types']
        data.update(block_types=[block_type.id])
        resp = self.client.post(url, data, follow=True)

        self.assertEquals(BlockVoucher.objects.count(), 1)
        voucher = BlockVoucher.objects.first()
        self.assertEqual(voucher.code, 'test_code')

        self.assertIn('Voucher with code test_code has been created!',
                      format_content(resp.rendered_content))
コード例 #26
0
    def test_abbreviated_ticket_booking_references(self):
        tb = mommy.make(
            TicketBooking, purchase_confirmed=True, paid=True
        )
        mommy.make(Ticket, ticket_booking=tb)

        self.client.login(username=self.user.username, password='******')

        resp = self.client.get(
            reverse(
                'studioadmin:ticketed_event_bookings',
                kwargs={'slug':tb.ticketed_event.slug}
            )
        )
        self.assertEqual(len(tb.booking_reference), 22)
        content = format_content(resp.rendered_content)
        self.assertNotIn(tb.booking_reference, content)
        self.assertIn(tb.booking_reference[0:5] + '...', content)
コード例 #27
0
    def test_formatted_uk_date(self):
        # activitylog in BST
        mommy.make(
            ActivityLog, log="Test log",
            timestamp=datetime(2016, 7, 1, 18, 0, tzinfo=timezone.utc)
        )
        # activitylog in GMT (same as UTC)
        mommy.make(
            ActivityLog, log="Test log",
            timestamp=datetime(2016, 1, 1, 18, 0, tzinfo=timezone.utc)
        )

        self.client.login(username=self.user.username, password='******')

        resp = self.client.get(reverse('studioadmin:activitylog'))
        content = format_content(resp.rendered_content)

        self.assertIn("01 Jul 2016 19:00:00", content)
        self.assertIn("01 Jan 2016 18:00:00", content)
コード例 #28
0
 def test_update_paypal_email_to_default(self):
     self.client.login(username=self.staff_user.username, password='******')
     self.session.paypal_email = '*****@*****.**'
     self.session.save()
     form_data = self.form_data(
         self.session,
         {
             'paypal_email': settings.DEFAULT_PAYPAL_EMAIL,
             'paypal_email_check': settings.DEFAULT_PAYPAL_EMAIL
         }
     )
     resp = self.client.post(
         reverse('studioadmin:edit_session', args=[self.session.id]),
         form_data, follow=True
     )
     self.assertNotIn(
         "You have changed the paypal receiver email.",
         format_content(str(resp.content)).replace('\\', '')
     )
     self.session.refresh_from_db()
     self.assertEqual(self.session.paypal_email, settings.DEFAULT_PAYPAL_EMAIL)
コード例 #29
0
    def test_no_changes_made(self):
        post_data = {
            'id': self.disclaimer.id,
            'name': self.disclaimer.name,
            'dob': self.disclaimer.dob.strftime('%d %b %Y'),
            'address': self.disclaimer.address,
            'postcode': self.disclaimer.postcode,
            'mobile_phone': self.disclaimer.mobile_phone,
            'emergency_contact1_name': self.disclaimer.emergency_contact1_name,
            'emergency_contact1_relationship':
            self.disclaimer.emergency_contact1_relationship,
            'emergency_contact1_phone':
            self.disclaimer.emergency_contact1_phone,
            'emergency_contact2_name': self.disclaimer.emergency_contact2_name,
            'emergency_contact2_relationship':
            self.disclaimer.emergency_contact2_relationship,
            'emergency_contact2_phone':
            self.disclaimer.emergency_contact2_phone,
            'medical_conditions': False,
            'medical_conditions_details': '',
            'joint_problems': False,
            'joint_problems_details': '',
            'allergies': False,
            'allergies_details': '',
            'medical_treatment_permission': True,
            'terms_accepted': True,
            'age_over_18_confirmed': True,
            'password': '******'
        }

        encoded_user_id = int_str(chaffify(self.user.id))
        update_url = reverse('studioadmin:update_user_disclaimer',
                             args=[encoded_user_id])

        self.assertTrue(
            self.client.login(username=self.staff_user.username,
                              password='******'))
        resp = self.client.post(update_url, post_data, follow=True)
        self.assertIn('No changes made', format_content(resp.rendered_content))
コード例 #30
0
    def test_adding_cancelled_booking(self):
        self.booking2.status = "CANCELLED"
        self.booking2.save()
        formset_data = {
            'bookings-TOTAL_FORMS': 2,
            'bookings-INITIAL_FORMS': 1,
            'bookings-0-id': self.booking1.id,
            'bookings-0-user': self.booking1.user.id,
            'bookings-0-paid': self.booking1.paid,
            'bookings-0-deposit_paid': self.booking1.paid,
            'bookings-0-attended': self.booking1.attended,
            'bookings-1-user': self.booking2.user.id,
            'bookings-1-deposit_paid': self.booking2.paid,
            'bookings-1-paid': self.booking2.paid,
            'bookings-1-attended': self.booking2.attended,
            'status_choice': 'OPEN',
            'formset_submitted': 'Save changes'
            }

        self.assertEqual(Booking.objects.all().count(), 2)

        self.assertEqual(self.booking2.status, 'CANCELLED')
        url = reverse(
            'studioadmin:event_register', args=[self.event.slug, 'OPEN']
            )
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(url, formset_data, follow=True)

        self.booking2.refresh_from_db()
        self.assertEqual(Booking.objects.all().count(), 2)
        self.assertEqual(self.booking2.status, 'OPEN')

        content = format_content(resp.rendered_content)

        self.assertIn(
            'Cancelled booking reopened for user {}'.format(
                self.booking2.user.username
            ), content
        )
コード例 #31
0
    def test_create_block_voucher(self):
        self.assertTrue(
            self.client.login(
                username=self.staff_user.username, password='******'
            )
        )
        self.assertFalse(BlockVoucher.objects.exists())
        block_type = mommy.make_recipe('booking.blocktype')
        url = reverse('studioadmin:add_block_voucher')
        data = self.data.copy()
        del data['event_types']
        data.update(block_types=[block_type.id])
        resp = self.client.post(url, data, follow=True)

        self.assertEquals(BlockVoucher.objects.count(), 1)
        voucher = BlockVoucher.objects.first()
        self.assertEqual(voucher.code, 'test_code')

        self.assertIn(
            'Voucher with code test_code has been created!',
            format_content(resp.rendered_content)
        )
コード例 #32
0
    def test_update_paypal_email_to_non_default(self):
        form_data = self.form_data(
            self.session, {
                'paypal_email': '*****@*****.**',
                'paypal_email_check': '*****@*****.**'
            })
        self.client.login(username=self.staff_user.username, password='******')
        resp = self.client.post(reverse('studioadmin:edit_session',
                                        args=[self.session.id]),
                                form_data,
                                follow=True)

        self.assertIn(
            "You have changed the paypal receiver email. If you haven't used "
            "this email before, it is strongly recommended that you test the "
            "email address here",
            format_content(str(resp.content)).replace('\\', ''))
        self.assertIn(
            "/studioadmin/[email protected]",
            str(resp.content))

        self.session.refresh_from_db()
        self.assertEqual(self.session.paypal_email, '*****@*****.**')
コード例 #33
0
    def test_no_changes_made(self):
        post_data = {
            'id': self.disclaimer.id,
            'name': self.disclaimer.name,
            'dob': self.disclaimer.dob.strftime('%d %b %Y'),
            'address': self.disclaimer.address,
            'postcode': self.disclaimer.postcode,
            'mobile_phone': self.disclaimer.mobile_phone,
            'emergency_contact1_name': self.disclaimer.emergency_contact1_name,
            'emergency_contact1_relationship': self.disclaimer.emergency_contact1_relationship,
            'emergency_contact1_phone': self.disclaimer.emergency_contact1_phone,
            'emergency_contact2_name': self.disclaimer.emergency_contact2_name,
            'emergency_contact2_relationship': self.disclaimer.emergency_contact2_relationship,
            'emergency_contact2_phone': self.disclaimer.emergency_contact2_phone,
            'medical_conditions': False,
            'medical_conditions_details': '',
            'joint_problems': False,
            'joint_problems_details': '',
            'allergies': False, 'allergies_details': '',
            'medical_treatment_permission': True,
            'terms_accepted': True,
            'age_over_18_confirmed': True,
            'password': '******'
        }

        encoded_user_id = int_str(chaffify(self.user.id))
        update_url = reverse(
            'studioadmin:update_user_disclaimer', args=[encoded_user_id]
        )

        self.assertTrue(
            self.client.login(username=self.staff_user.username, password='******')
        )
        resp = self.client.post(update_url, post_data, follow=True)
        self.assertIn(
            'No changes made', format_content(resp.rendered_content)
        )
コード例 #34
0
    def test_disclaimer_messages(self):
        mommy.make_recipe('booking.blocktype5')
        user = User.objects.create_user(
            username='******', email='*****@*****.**', password='******'
        )
        self.client.login(username=user.username, password='******')
        resp = self.client.get(reverse('booking:block_list'))
        self.assertNotIn(
            'Get a new block!', format_content(resp.rendered_content)
        )
        self.assertIn(
            'Please complete a disclaimer form before buying a block.',
            format_content(resp.rendered_content)
        )

        # self.user has a PrintDisclaimer
        self.client.login(username=self.user.username, password='******')
        resp = self.client.get(reverse('booking:block_list'))
        self.assertIn(
            'Get a new block!', format_content(resp.rendered_content)
        )
        self.assertNotIn(
            'Please complete a disclaimer form before buying a block.',
            format_content(resp.rendered_content)
        )

        user_online_disclaimer = User.objects.create_user(
            username='******', email='*****@*****.**', password='******'
        )
        mommy.make(OnlineDisclaimer, user=user_online_disclaimer)
        self.client.login(
            username=user_online_disclaimer.username, password='******'
        )
        resp = self.client.get(reverse('booking:block_list'))
        self.assertIn(
            'Get a new block!', format_content(resp.rendered_content)
        )
        self.assertNotIn(
            'Please complete a disclaimer form before buying a block.',
            format_content(resp.rendered_content)
        )