Example #1
0
def test_reject_deleted_attendees(db):
    attendees = AttendeeSubFactory.create_batch(3)
    attendees += AttendeeSubFactory.create_batch(2, deleted_at=datetime.now())
    db.session.commit()

    with pytest.raises(ObjectNotFound,
                       match='Some attendee among ids .* do not exist'):
        validate_ticket_holders([att.id for att in attendees])
def _create_discounted_attendees(db):
    discount, tickets = _create_discount_code(db)
    order_with_discount = OrderSubFactory(status='completed',
                                          discount_code=discount)
    AttendeeSubFactory.create_batch(3,
                                    order=order_with_discount,
                                    ticket_id=tickets[0]['id'])
    db.session.commit()

    return discount, tickets
def test_expire_initializing_tickets(db):
    order_expiry_time = get_settings()['order_expiry_time']
    order_old = OrderSubFactory(
        created_at=datetime.datetime.now(timezone.utc) -
        timedelta(minutes=order_expiry_time))
    AttendeeSubFactory.create_batch(3, order=order_old)
    order_new = OrderSubFactory()
    AttendeeSubFactory.create_batch(2, order=order_new)
    db.session.commit()

    expire_initializing_tickets()

    assert order_old.status == 'expired'
    assert len(order_old.ticket_holders) == 0
    assert order_new.status == 'initializing'
    assert len(order_new.ticket_holders) == 2
def test_expire_pending_tickets(db):
    order_old = OrderSubFactory(
        status='pending',
        created_at=datetime.datetime.now(timezone.utc) - timedelta(minutes=45),
    )
    AttendeeSubFactory.create_batch(3, order=order_old)
    order_new = OrderSubFactory(
        status='pending',
        created_at=datetime.datetime.now(timezone.utc) - timedelta(minutes=15),
    )
    AttendeeSubFactory.create_batch(2, order=order_new)
    db.session.commit()

    expire_pending_tickets()

    assert order_old.status == 'expired'
    assert len(order_old.ticket_holders) == 3
    assert order_new.status == 'pending'
    assert len(order_new.ticket_holders) == 2
Example #5
0
def test_reject_attendees_with_order(db):
    attendees = AttendeeSubFactory.create_batch(2)
    attendees.append(AttendeeSubFactory(order=OrderSubFactory()))
    db.session.commit()

    with pytest.raises(
            ConflictError,
            match=
            f'Order already exists for attendee with id {attendees[-1].id}',
    ):
        validate_ticket_holders([att.id for att in attendees])
Example #6
0
def create_order(db, user):
    order = OrderSubFactory(amount=234, status='initializing', user=user)
    AttendeeSubFactory.create_batch(3, order=order)
    db.session.commit()

    return str(order.id)
Example #7
0
def test_validate_ticket_holders(db):
    attendees = AttendeeSubFactory.create_batch(3, event=EventFactoryBasic())
    db.session.commit()

    assert attendees == validate_ticket_holders(
        [str(att.id) for att in attendees])