Esempio n. 1
0
 def test_get_orders_of_user(self):
     order = start_order(self.user, self.account)
     order2 = start_order(self.user, self.account2)
     order3 = start_order(self.user2, self.account)
     orders = get_orders_of_user(self.user.id)
     self.assertEqual(len(orders), 2)
     self.assertIn(order, orders)
     self.assertIn(order2, orders)
     self.assertNotIn(order3, orders)
Esempio n. 2
0
 def test_started_orders(self):
     order = start_order(self.user, self.account)
     order2 = start_order(self.user2, self.account)
     order3 = start_order(self.user, self.account2)
     order4 = start_order(self.user2, self.account2)
     started_order = get_started_order(self.user.id, self.account.id)
     self.assertEqual(order, started_order)
     self.assertNotEqual(order, order2)
     self.assertNotEqual(order2, order3)
     self.assertNotEqual(order3, order4)
Esempio n. 3
0
 def test_mail_tickets(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     order.checkout()
     order.purchase()
     create_tickets(order)
     self.assertTrue(mail_order(order.id, fake=True))
Esempio n. 4
0
 def test_finish_order(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 9)
     order.checkout()
     finish_order(order, send_mail=False)
     self.assertEqual(self.tickettype.availability, AVAILABLE)
     self.assertEqual(len(order.get_tickets()), 9)
Esempio n. 5
0
 def test_updating_too_many(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     add_tickets(order, self.tickettype.id, 9)
     add_tickets(order, self.tickettype.id, 10)
     self.assertRaises(ex.AmountNotAvailableError, add_tickets, order,
                       self.tickettype.id, 11)
Esempio n. 6
0
 def test_add_tickets_to_order_with_no_user(self):
     order = start_order(None, self.account)
     add_tickets(order, self.tickettype.id, 5)
     self.assertEqual(len(order.get_ticketorders()), 1)
     self.assertEqual(order.get_ticketorders()[0].amount, 5)
     self.assertEqual(order.get_ticketorders()[0].ticket_type_id,
                      self.tickettype.id)
Esempio n. 7
0
def order_new(client_id,
              user_id,
              tickettype_id,
              amount,
              account_short=None,
              as_guest=False,
              as_paper=False):
    """
    Starts a new order session or retrieves one that was still active.
    
    Args:
        client_id
        user_id: 
            Id of the user to start a session for.
    """
    timeout_sessions(600)

    # assert permission to order tickettype
    if client_id is not None:
        require_tickettype_owner(client_id, tickettype_id)

    # get account to create order for.
    if account_short is not None:
        account = lookup_account_by_name(account_short)
    else:
        account = lookup_account_for_client(client_id)

    # start an order or get current one.
    if user_id is not None:
        user = lookup_user_by_id(user_id)
        order = start_order(user, account)
    else:
        order = start_order(None, account)

    # set order as guest (optional)
    if as_guest:
        order.meta['gifted'] = True

    # set order as paper ticket (optional)
    if as_paper:
        order.meta['paper'] = True

    add_tickets(order, tickettype_id, amount)

    # build successful order
    order_info = order_to_dict(order)
    return order_info
Esempio n. 8
0
 def test_update_tickets(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     add_tickets(order, self.tickettype.id, 4)
     self.assertEqual(len(order.get_ticketorders()), 1)
     self.assertEqual(order.get_ticketorders()[0].amount, 4)
     self.assertEqual(order.get_ticketorders()[0].ticket_type_id,
                      self.tickettype.id)
Esempio n. 9
0
 def test_mail_bad_address(self):
     self.user.email = "badmail"
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     order.checkout()
     order.purchase()
     create_tickets(order)
     self.assertFalse(mail_order(order.id, fake=True))
Esempio n. 10
0
 def test_dont_timeout_purchased_orders(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     order.checkout()
     order.purchase()
     self.assertEqual(order.status, PURCHASED)
     timeout_sessions(0)
     self.assertEqual(order.status, PURCHASED)
Esempio n. 11
0
 def test_start_two_same_orders(self):
     order1 = start_order(self.user, self.account)
     order2 = start_order(self.user, self.account)
     self.assertEqual(order1, order2)
     self.assertEqual(order1.order_key, order2.order_key)
Esempio n. 12
0
 def test_start_two_seperate_orders_by_user(self):
     order1 = start_order(self.user, self.account)
     order2 = start_order(self.user, self.account2)
     self.assertNotEqual(order1, order2)
     self.assertNotEqual(order1.order_key, order2.order_key)
Esempio n. 13
0
 def test_start_order(self):
     order = start_order(self.user, self.account)
     self.assertEqual(order.account, self.account)
     self.assertEqual(order.user, self.user)
     self.assertEqual(order.status, STARTED)
Esempio n. 14
0
 def test_finish_unbound_full_order(self):
     order = start_order(None, self.account)
     add_tickets(order, self.tickettype.id, 10)
     self.assertRaises(ex.OrderError, order.checkout)
Esempio n. 15
0
 def test_finish_binding_full_order(self):
     order = start_order(None, self.account)
     add_tickets(order, self.tickettype.id, 10)
     order.checkout(self.user)
Esempio n. 16
0
 def test_adding_zero(self):
     order = start_order(self.user, self.account)
     self.assertRaises(ex.AmountNotAvailableError, add_tickets, order,
                       self.tickettype.id, 0)
Esempio n. 17
0
 def test_finish_unlocked_order(self):
     order = start_order(self.user, self.account)
     self.assertRaises(ex.OrderError, finish_order, order, send_mail=False)
Esempio n. 18
0
 def test_add_free_tickets(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.free_tickettype.id, 5)
Esempio n. 19
0
 def test_add_tickets_to_locked_order(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     order.lock()
     self.assertRaises(ex.OrderLockedError, add_tickets, order,
                       self.tickettype.id, 5)
Esempio n. 20
0
 def test_add_free_tickets_when_no_transaction_available(self):
     order = start_order(self.user, self.account)
     get_or_create_transaction_statistic(self.account).amount = 500
     add_tickets(order, self.free_tickettype.id, 5)
Esempio n. 21
0
 def test_add_tickets_when_no_transactions_available(self):
     order = start_order(self.user, self.account)
     get_or_create_transaction_statistic(self.account).amount = 500
     self.assertRaises(ex.SubscriptionError, add_tickets, order,
                       self.tickettype.id, 5)
Esempio n. 22
0
 def test_remove_on_update_to_zero(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 5)
     self.assertEqual(len(order.ordered_tickets.all()), 1)
     add_tickets(order, self.tickettype.id, 0)
     self.assertEqual(len(order.ordered_tickets.all()), 0)
Esempio n. 23
0
 def test_start_order_late_user_binding(self):
     order = start_order(None, self.account)
     order2 = start_order(None, self.account)
     self.assertNotEqual(order, order2)
Esempio n. 24
0
 def test_get_order_by_id(self):
     order = start_order(self.user, self.account)
     order2 = start_order(self.user2, self.account)
     found_order = lookup_order_by_id(order.id)
     self.assertEqual(order, found_order)
     self.assertNotEqual(found_order, order2)
Esempio n. 25
0
 def test_no_tickets(self):
     order = start_order(self.user, self.account)
     self.assertEqual(len(order.get_ticketorders()), 0)
Esempio n. 26
0
 def test_adding_inactive_tickettype(self):
     order = start_order(self.user, self.account)
     self.assertRaises(ex.InactiveTicketTypeError, add_tickets, order,
                       self.inactive_tickettype.id, 5)
Esempio n. 27
0
 def test_finish_full_order(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 10)
     order.checkout()
     finish_order(order, send_mail=False)
     self.assertEqual(self.tickettype.availability, SOLD)
Esempio n. 28
0
 def test_claiming_all_tickets(self):
     order = start_order(self.user, self.account)
     add_tickets(order, self.tickettype.id, 10)
     self.assertEqual(self.tickettype.availability, CLAIMED)
Esempio n. 29
0
 def test_get_order_by_payment_key(self):
     order = start_order(self.user, self.account)
     order2 = start_order(self.user2, self.account)
     found_order = lookup_order_by_payment_key(order.payment_key)
     self.assertEqual(order, found_order)
     self.assertNotEqual(found_order, order2)
Esempio n. 30
0
 def test_adding_someone_elses_tickettype(self):
     order = start_order(self.user, self.account)
     self.assertRaises(ex.AccountError, add_tickets, order,
                       self.another_tickettype.id, 5)