mirror of
https://github.com/pretix/pretix.git
synced 2026-05-03 14:54:04 +00:00
Backend UX: Restructure payment settings
This commit is contained in:
@@ -135,52 +135,38 @@ class EventsTest(SoupTest):
|
||||
doc = self.get_doc('/control/event/%s/%s/live/' % (self.orga1.slug, self.event1.slug))
|
||||
assert len(doc.select(".btn-primary")) == 0
|
||||
|
||||
def test_payment_settings(self):
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
self.get_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug))
|
||||
self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
def test_payment_settings_provider(self):
|
||||
self.get_doc('/control/event/%s/%s/settings/payment/banktransfer' % (self.orga1.slug, self.event1.slug))
|
||||
self.post_doc('/control/event/%s/%s/settings/payment/banktransfer' % (self.orga1.slug, self.event1.slug), {
|
||||
'payment_banktransfer__enabled': 'true',
|
||||
'payment_banktransfer__fee_abs': '12.23',
|
||||
'payment_banktransfer_bank_details_0': 'Test',
|
||||
'settings-payment_term_days': '2',
|
||||
'settings-tax_rate_default': tr19.pk,
|
||||
})
|
||||
self.event1.settings.flush()
|
||||
assert self.event1.settings.get('payment_banktransfer__enabled', as_type=bool)
|
||||
assert self.event1.settings.get('payment_banktransfer__fee_abs', as_type=Decimal) == Decimal('12.23')
|
||||
|
||||
def test_payment_settings_dont_require_fields_of_inactive_providers(self):
|
||||
def test_payment_settings(self):
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
'settings-tax_rate_default': tr19.pk,
|
||||
'settings-payment_term_days': '2'
|
||||
}, follow=True)
|
||||
assert doc.select('.alert-success')
|
||||
|
||||
def test_payment_settings_require_fields_of_active_providers(self):
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
'payment_banktransfer__enabled': 'true',
|
||||
'payment_banktransfer__fee_abs': '12.23',
|
||||
'settings-payment_term_days': '2',
|
||||
'settings-tax_rate_default': tr19.pk,
|
||||
self.get_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug))
|
||||
self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
'payment_term_days': '2',
|
||||
'tax_rate_default': tr19.pk,
|
||||
})
|
||||
assert doc.select('.alert-danger')
|
||||
self.event1.settings.flush()
|
||||
assert self.event1.settings.get('payment_term_days', as_type=int) == 2
|
||||
|
||||
def test_payment_settings_last_date_payment_after_presale_end(self):
|
||||
tr19 = self.event1.tax_rules.create(rate=Decimal('19.00'))
|
||||
self.event1.presale_end = datetime.datetime.now()
|
||||
self.event1.save(update_fields=['presale_end'])
|
||||
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
'payment_banktransfer__enabled': 'true',
|
||||
'payment_banktransfer__fee_abs': '12.23',
|
||||
'payment_banktransfer_bank_details_0': 'Test',
|
||||
'settings-payment_term_days': '2',
|
||||
'settings-payment_term_last_0': 'absolute',
|
||||
'settings-payment_term_last_1': (self.event1.presale_end - datetime.timedelta(1)).strftime('%Y-%m-%d'),
|
||||
'settings-payment_term_last_2': '0',
|
||||
'settings-payment_term_last_3': 'date_from',
|
||||
'settings-tax_rate_default': tr19.pk,
|
||||
'payment_term_days': '2',
|
||||
'payment_term_last_0': 'absolute',
|
||||
'payment_term_last_1': (self.event1.presale_end - datetime.timedelta(1)).strftime('%Y-%m-%d'),
|
||||
'payment_term_last_2': '0',
|
||||
'payment_term_last_3': 'date_from',
|
||||
'tax_rate_default': tr19.pk,
|
||||
})
|
||||
assert doc.select('.alert-danger')
|
||||
self.event1.presale_end = None
|
||||
@@ -191,15 +177,12 @@ class EventsTest(SoupTest):
|
||||
self.event1.presale_end = self.event1.date_from - datetime.timedelta(days=5)
|
||||
self.event1.save(update_fields=['presale_end'])
|
||||
doc = self.post_doc('/control/event/%s/%s/settings/payment' % (self.orga1.slug, self.event1.slug), {
|
||||
'payment_banktransfer__enabled': 'true',
|
||||
'payment_banktransfer__fee_abs': '12.23',
|
||||
'payment_banktransfer_bank_details_0': 'Test',
|
||||
'settings-payment_term_days': '2',
|
||||
'settings-payment_term_last_0': 'relative',
|
||||
'settings-payment_term_last_1': '',
|
||||
'settings-payment_term_last_2': '10',
|
||||
'settings-payment_term_last_3': 'date_from',
|
||||
'settings-tax_rate_default': tr19.pk,
|
||||
'payment_term_days': '2',
|
||||
'payment_term_last_0': 'relative',
|
||||
'payment_term_last_1': '',
|
||||
'payment_term_last_2': '10',
|
||||
'payment_term_last_3': 'date_from',
|
||||
'tax_rate_default': tr19.pk,
|
||||
})
|
||||
assert doc.select('.alert-danger')
|
||||
self.event1.presale_end = None
|
||||
|
||||
@@ -27,6 +27,7 @@ def env(client):
|
||||
@pytest.mark.django_db
|
||||
def test_settings(env):
|
||||
client, event = env
|
||||
response = client.get('/control/event/%s/%s/settings/payment' % (event.organizer.slug, event.slug), follow=True)
|
||||
response = client.get('/control/event/%s/%s/settings/payment/paypal' % (event.organizer.slug, event.slug),
|
||||
follow=True)
|
||||
assert response.status_code == 200
|
||||
assert 'paypal__enabled' in response.rendered_content
|
||||
|
||||
@@ -43,7 +43,7 @@ def env(client):
|
||||
t.members.add(user)
|
||||
t.limit_events.add(event)
|
||||
client.force_login(user)
|
||||
url = '/control/event/%s/%s/settings/payment' % (event.organizer.slug, event.slug)
|
||||
url = '/control/event/%s/%s/settings/payment/stripe_settings' % (event.organizer.slug, event.slug)
|
||||
return client, event, url
|
||||
|
||||
|
||||
@@ -57,8 +57,8 @@ def test_settings(env):
|
||||
|
||||
def _stripe_key_test(env, field, value, is_valid):
|
||||
client, event, url = env
|
||||
data = {'payment_stripe_' + field: value}
|
||||
response = client.post(url, data)
|
||||
data = {'payment_stripe_' + field: value, 'payment_stripe__enabled': 'on'}
|
||||
response = client.post(url, data, follow=True)
|
||||
|
||||
if not is_valid:
|
||||
assert 'does not look valid' in response.rendered_content
|
||||
|
||||
Reference in New Issue
Block a user