New tests and minor fixes

This commit is contained in:
Raphael Michel
2016-09-20 16:13:13 +02:00
parent 1b6be05a5f
commit d1f79faef2
6 changed files with 292 additions and 28 deletions

View File

@@ -9,6 +9,7 @@ from pretix.base.models import (
Event, Item, ItemCategory, ItemVariation, Order, OrderPosition, Organizer,
Question, Quota,
)
from pretix.base.services.invoices import generate_invoice
class OrdersTest(TestCase):
@@ -49,7 +50,8 @@ class OrdersTest(TestCase):
datetime=now() - datetime.timedelta(days=3),
expires=now() + datetime.timedelta(days=11),
total=Decimal("23"),
payment_provider='banktransfer'
payment_provider='banktransfer',
locale='en'
)
self.ticket_pos = OrderPosition.objects.create(
order=self.order,
@@ -108,6 +110,14 @@ class OrdersTest(TestCase):
'/%s/%s/order/%s/123/cancel' % (self.orga.slug, self.event.slug, self.not_my_order.code)
)
assert response.status_code == 404
response = self.client.post(
'/%s/%s/order/ABCDE/123/cancel/do' % (self.orga.slug, self.event.slug)
)
assert response.status_code == 404
response = self.client.post(
'/%s/%s/order/%s/123/cancel/do' % (self.orga.slug, self.event.slug, self.not_my_order.code)
)
assert response.status_code == 404
def test_orders_detail(self):
response = self.client.get(
@@ -229,6 +239,10 @@ class OrdersTest(TestCase):
def test_orders_cancel_invalid(self):
self.order.status = Order.STATUS_PAID
self.order.save()
r = self.client.post(
'/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
}, follow=True)
assert 'btn-danger' not in r.rendered_content
self.client.post(
'/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
}, follow=True)
@@ -258,6 +272,37 @@ class OrdersTest(TestCase):
self.order.refresh_from_db()
assert self.order.status == Order.STATUS_PENDING
def test_invoice_create_notallowed(self):
self.event.settings.set('invoice_generate', 'no')
response = self.client.post(
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
{}, follow=True)
assert 'alert-danger' in response.rendered_content
def test_invoice_create_duplicate(self):
self.event.settings.set('invoice_generate', 'user')
generate_invoice(self.order)
response = self.client.post(
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
{}, follow=True)
assert 'alert-danger' in response.rendered_content
def test_invoice_create_wrong_secret(self):
self.event.settings.set('invoice_generate', 'user')
generate_invoice(self.order)
response = self.client.post(
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, '1234'),
{})
assert 404 == response.status_code
def test_invoice_create_ok(self):
self.event.settings.set('invoice_generate', 'user')
response = self.client.post(
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
{}, follow=True)
assert 'alert-success' in response.rendered_content
assert self.order.invoices.exists()
def test_orders_download(self):
self.event.settings.set('ticket_download', True)
del self.event.settings['ticket_download_date']