Ejemplo n.º 1
0
    def test_clean_and_save_ticket_discount_code(self):
        # if saved with no discount_code, the ticket should save successfully
        ticket_no_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                       type=self.ticket_type, email='*****@*****.**', phone='0912345678')
        ticket_no_code.save()

        # if saved with a code that matches the ticket type of the ticket, the ticket should save successfully
        ticket_with_valid_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                               type=self.ticket_type, email='*****@*****.**', phone='0912345678',
                                               discount_code=self.discount_code)
        ticket_with_valid_code.save()
        # if discount code has been applied, the discount code should not be available
        self.assertEquals(self.discount_code.issued_tickets, 1)
        self.assertIs(self.discount_code.is_available, False)

        # if saved with a code that matches the ticket type of the ticket, the ticket should save successfully
        ticket_with_used_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                              type=self.ticket_type, email='*****@*****.**', phone='0912345678',
                                              discount_code=self.discount_code)
        self.assertRaises(ValidationError, ticket_with_used_code.save)

        # if saved with a code that does not match the ticket type of the ticket, the ticket should
        # raise a validationError
        ticket_with_invalid_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                                 type=self.ticket_type, email='*****@*****.**', phone='0912345678',
                                                 discount_code=self.discount_code_2)
        # the discount code has not been applied so the number of allowed usages should stay 100
        self.assertEquals(self.discount_code_2.issued_tickets, 0)
        self.assertRaises(ValidationError, ticket_with_invalid_code.save)
Ejemplo n.º 2
0
 def test_automatic_order_generator(self):
     ticket = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                            type=self.ticket_type, email='*****@*****.**', phone='0912345678',
                            discount_code=self.discount_code)
     ticket.save()
     self.assertEquals(ticket.order.status, 'awaiting_payment')
     self.assertEquals(ticket.order.price, self.ticket_type.price)
     self.assertEquals(ticket.order.discount, 60)
Ejemplo n.º 3
0
    def test_clean_and_save_ticket_discount_code(self):

        # if saved with no discount_code, the ticket should save successfully
        ticket_no_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                       type=self.ticket_type, email='*****@*****.**', phone='0912345678')
        ticket_no_code.save()

        # if saved with a code that matches the ticket type of the ticket, the ticket should save successfully
        ticket_with_valid_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                               type=self.ticket_type, email='*****@*****.**', phone='0912345678',
                                               discount_code=self.discount_code)
        ticket_with_valid_code.save()

        # if saved with a code that does not match the ticket type of the ticket, the ticket should
        # raise a validationError
        ticket_with_invalid_code = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test",
                                                 type=self.ticket_type, email='*****@*****.**', phone='0912345678',
                                                 discount_code=self.discount_code_2)
        self.assertRaises(ValidationError, ticket_with_invalid_code.save)
Ejemplo n.º 4
0
    def test_string_representation(self):
        """
        String representation of model instance have to be equal to its title
        """
        entry = models.Ticket(first_name="Test", last_name="Tester")
        self.assertEqual(str(entry),
                         '%s %s' % (entry.first_name, entry.last_name))

        entry.title = 'mr'
        self.assertEqual(
            str(entry), '%s %s %s' % (dict(TITLE_CHOICES)[entry.title],
                                      entry.first_name, entry.last_name))
Ejemplo n.º 5
0
 def test_save_tickets_for_different_event(self):
     title1 = 'First title'
     title2 = 'Second title'
     date_to = timezone.now()
     date_from = date_to + datetime.timedelta(seconds=1)
     location = models.Location.objects.order_by('?').first()
     date_kwargs = {'date_from': date_from, 'date_to': date_to}
     event_kwargs = {'event_type': Event.MEETUP, 'location': location}
     event_kwargs.update(date_kwargs)
     event1 = Event.objects.create(title=title1, slug=slugify(title1), **event_kwargs)
     event2 = Event.objects.create(title=title2, slug=slugify(title2), **event_kwargs)
     ticket_type1 = TicketType.objects.create(title=title1, event=event1, price=0, **date_kwargs)
     ticket_type2 = TicketType.objects.create(title=title2, event=event2, price=0, **date_kwargs)
     ticket_kwargs = {'status': 'requested', 'title': 'mr', 'first_name': 'test', 'last_name': 'Test',
                      'email': '*****@*****.**', 'phone': '0912345678'}
     ticket1 = models.Ticket.objects.create(type=ticket_type1, **ticket_kwargs)
     ticket2 = models.Ticket(type=ticket_type2, order=ticket1.order, **ticket_kwargs)
     self.assertRaises(ValidationError, ticket2.save)
Ejemplo n.º 6
0
 def test_automatic_order_generator(self):
     time = timezone.now()
     location = models.Location(title='test_title', street='test_street', city='test_city', postcode=000000,
                                state='test_state', capacity=20)
     location.save()
     event = models.Event(title='test_event', description='test', event_type='meetup',
                          status=models.event.PUBLISHED, location=location, date_from=time, date_to=time)
     event.save()
     ticket_type = models.TicketType(title='test', description='test', price=100, event=event,
                                     date_from=timezone.now(), date_to=timezone.now())
     ticket_type.save()
     discount_code = models.DiscountCode(title='test discount', hash='test', discount=60,
                                         date_from=time, date_to=time, usage=1,
                                         ticket_type=ticket_type)
     discount_code.save()
     ticket = models.Ticket(status='requested', title='mr', first_name="test", last_name="Test", type=ticket_type,
                            email='*****@*****.**', phone='0912345678', discount_code=discount_code)
     ticket.save()
     self.assertEquals(ticket.order.status, 'awaiting_payment')
     self.assertEquals(ticket.order.price, ticket_type.price)
     self.assertEquals(ticket.order.discount, 60)