mirror of
https://github.com/pretix/pretix.git
synced 2026-05-03 14:54:04 +00:00
Add tests for control
This commit is contained in:
83
src/tests/control/test_devices.py
Normal file
83
src/tests/control/test_devices.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import pytest
|
||||
from django.utils.timezone import now
|
||||
|
||||
from pretix.base.models import Device, Event, Organizer, Team, User
|
||||
from pretix.base.models.devices import generate_api_token
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def organizer():
|
||||
return Organizer.objects.create(name='Dummy', slug='dummy')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def event(organizer):
|
||||
event = Event.objects.create(
|
||||
organizer=organizer, name='Dummy', slug='dummy',
|
||||
date_from=now()
|
||||
)
|
||||
return event
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def device(organizer):
|
||||
return organizer.devices.create(name='Cashdesk')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def admin_user(admin_team):
|
||||
u = User.objects.create_user('dummy@dummy.dummy', 'dummy')
|
||||
admin_team.members.add(u)
|
||||
return u
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def admin_team(organizer):
|
||||
return Team.objects.create(organizer=organizer, can_change_organizer_settings=True, name='Admin team')
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_list_of_devices(event, admin_user, client, device):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
resp = client.get('/control/organizer/dummy/devices')
|
||||
assert 'Cashdesk' in resp.rendered_content
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_create_device(event, admin_user, admin_team, client):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
resp = client.post('/control/organizer/dummy/device/add', {
|
||||
'name': 'Foo',
|
||||
'limit_events': str(event.pk),
|
||||
}, follow=True)
|
||||
d = Device.objects.last()
|
||||
assert d.name == 'Foo'
|
||||
assert not d.all_events
|
||||
assert list(d.limit_events.all()) == [event]
|
||||
assert d.initialization_token in resp.content.decode()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_update_device(event, admin_user, admin_team, device, client):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/organizer/dummy/device/{}/edit'.format(device.pk), {
|
||||
'name': 'Cashdesk 2',
|
||||
'limit_events': str(event.pk),
|
||||
}, follow=True)
|
||||
device.refresh_from_db()
|
||||
assert device.name == 'Cashdesk 2'
|
||||
assert not device.all_events
|
||||
assert list(device.limit_events.all()) == [event]
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_revoke_device(event, admin_user, admin_team, device, client):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
device.api_token = generate_api_token()
|
||||
device.initialized = now()
|
||||
device.save()
|
||||
|
||||
client.get('/control/organizer/dummy/device/{}/revoke'.format(device.pk))
|
||||
client.post('/control/organizer/dummy/device/{}/revoke'.format(device.pk), {}, follow=True)
|
||||
device.refresh_from_db()
|
||||
assert device.api_token is None
|
||||
@@ -131,6 +131,11 @@ organizer_urls = [
|
||||
'organizer/abc/team/1/edit',
|
||||
'organizer/abc/team/1/delete',
|
||||
'organizer/abc/team/add',
|
||||
'organizer/abc/devices',
|
||||
'organizer/abc/device/add',
|
||||
'organizer/abc/device/1/edit',
|
||||
'organizer/abc/device/1/connect',
|
||||
'organizer/abc/device/1/revoke',
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -98,6 +98,8 @@ def logged_in_client(client, event):
|
||||
('/control/organizers/', 200),
|
||||
('/control/organizers/add', 200),
|
||||
('/control/organizer/{orga}/edit', 200),
|
||||
('/control/organizer/{orga}/teams', 200),
|
||||
('/control/organizer/{orga}/devices', 200),
|
||||
|
||||
('/control/events/', 200),
|
||||
('/control/events/add', 200),
|
||||
|
||||
Reference in New Issue
Block a user