forked from CGM_Public/pretix_original
92 lines
2.6 KiB
Python
92 lines
2.6 KiB
Python
import datetime
|
|
|
|
import pytest
|
|
|
|
from pretix.base.models import Event, Organizer, Team, User
|
|
|
|
valid_secret_key_values = [
|
|
'sk_',
|
|
'sk_foo',
|
|
'rk_bla',
|
|
]
|
|
|
|
valid_publishable_key_values = [
|
|
'pk_',
|
|
'pk_foo',
|
|
]
|
|
|
|
invalid_secret_key_values = [
|
|
'skihaspartialprefix',
|
|
'ihasnoprefix',
|
|
'ihaspostfixsk_',
|
|
]
|
|
|
|
invalid_publishable_key_values = [
|
|
'pkihaspartialprefix',
|
|
'ihasnoprefix',
|
|
'ihaspostfixpk_',
|
|
]
|
|
|
|
|
|
@pytest.fixture
|
|
def env(client):
|
|
orga = Organizer.objects.create(name='CCC', slug='ccc')
|
|
event = Event.objects.create(
|
|
organizer=orga, name='30C3', slug='30c3',
|
|
date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc),
|
|
plugins='pretix.plugins.stripe',
|
|
live=True
|
|
)
|
|
event.settings.set('attendee_names_asked', False)
|
|
event.settings.set('payment_stripe__enabled', True)
|
|
user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
|
|
t = Team.objects.create(organizer=event.organizer, can_change_event_settings=True)
|
|
t.members.add(user)
|
|
t.limit_events.add(event)
|
|
client.force_login(user)
|
|
url = '/control/event/%s/%s/settings/payment/stripe_settings' % (event.organizer.slug, event.slug)
|
|
return client, event, url
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_settings(env):
|
|
client, event, url = env
|
|
response = client.get(url, follow=True)
|
|
assert response.status_code == 200
|
|
assert 'stripe__enabled' in response.rendered_content
|
|
|
|
|
|
def _stripe_key_test(env, field, value, is_valid):
|
|
client, event, url = env
|
|
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
|
|
else:
|
|
assert 'does not look valid' not in response.rendered_content
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize("value", invalid_secret_key_values)
|
|
def test_settings_secret_key_invalid(env, value):
|
|
_stripe_key_test(env, 'secret_key', value, False)
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize("value", invalid_publishable_key_values)
|
|
def test_settings_publishable_key_invalid(env, value):
|
|
_stripe_key_test(env, 'publishable_key', value, False)
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize("value", valid_secret_key_values)
|
|
def test_settings_secret_key_valid(env, value):
|
|
_stripe_key_test(env, 'secret_key', value, True)
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize("value", valid_publishable_key_values)
|
|
def test_settings_publishable_key_valid(env, value):
|
|
_stripe_key_test(env, 'publishable_key', value, True)
|