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
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])
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)
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])