mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Undo/redo Useful toolbox Font selection Add text content Use hex for colors JS-side dump and load Save Load layout, proper undo/redo First steps to Python rendering More PDF rendering Copy and paste Buttons for keyboard actions Splash Screen Block unbeforeunload in dirty state Remove debugging output Preview Upload new PDFs via the editor Fix bugs during PDF reload, link in settings form New default ticket Add OpenSans BI Custom fonts, fix tests
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
from datetime import timedelta
|
|
from decimal import Decimal
|
|
from io import BytesIO
|
|
|
|
import pytest
|
|
from django.utils.timezone import now
|
|
from PyPDF2 import PdfFileReader
|
|
|
|
from pretix.base.models import (
|
|
Event, Item, ItemVariation, Order, OrderPosition, Organizer,
|
|
)
|
|
from pretix.plugins.ticketoutputpdf.ticketoutput import PdfTicketOutput
|
|
|
|
|
|
@pytest.fixture
|
|
def env():
|
|
o = Organizer.objects.create(name='Dummy', slug='dummy')
|
|
event = Event.objects.create(
|
|
organizer=o, name='Dummy', slug='dummy',
|
|
date_from=now(), live=True
|
|
)
|
|
o1 = Order.objects.create(
|
|
code='FOOBAR', event=event, email='dummy@dummy.test',
|
|
status=Order.STATUS_PENDING,
|
|
datetime=now(), expires=now() + timedelta(days=10),
|
|
total=Decimal('13.37'), payment_provider='banktransfer'
|
|
)
|
|
shirt = Item.objects.create(event=event, name='T-Shirt', default_price=12)
|
|
shirt_red = ItemVariation.objects.create(item=shirt, default_price=14, value="Red")
|
|
OrderPosition.objects.create(
|
|
order=o1, item=shirt, variation=shirt_red,
|
|
price=12, attendee_name=None, secret='1234'
|
|
)
|
|
OrderPosition.objects.create(
|
|
order=o1, item=shirt, variation=shirt_red,
|
|
price=12, attendee_name=None, secret='5678'
|
|
)
|
|
return event, o1
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_generate_pdf(env):
|
|
event, order = env
|
|
event.settings.set('ticketoutput_pdf_code_x', 30)
|
|
event.settings.set('ticketoutput_pdf_code_y', 50)
|
|
event.settings.set('ticketoutput_pdf_code_s', 2)
|
|
o = PdfTicketOutput(event)
|
|
fname, ftype, buf = o.generate(order.positions.first())
|
|
assert ftype == 'application/pdf'
|
|
pdf = PdfFileReader(BytesIO(buf))
|
|
assert pdf.numPages == 1
|