API: Allow to run exporter without events

This commit is contained in:
Raphael Michel
2023-06-09 16:01:47 +02:00
parent 635bb94cc4
commit cfe0f67f0d
3 changed files with 46 additions and 4 deletions

View File

@@ -102,7 +102,7 @@ def test_org_list(token_client, organizer, event):
c = copy.deepcopy(SAMPLE_EXPORTER_CONFIG)
c['input_parameters'].insert(0, {
"name": "events",
"required": True
"required": False
})
resp = token_client.get('/api/v1/organizers/{}/exporters/'.format(organizer.slug))
assert resp.status_code == 200
@@ -131,6 +131,12 @@ def test_org_validate_events(token_client, organizer, team, event):
resp = token_client.post('/api/v1/organizers/{}/exporters/orderlist/run/'.format(organizer.slug), data={
'_format': 'xlsx',
}, format='json')
assert resp.status_code == 202
resp = token_client.post('/api/v1/organizers/{}/exporters/orderlist/run/'.format(organizer.slug), data={
'_format': 'xlsx',
'events': []
}, format='json')
assert resp.status_code == 400
assert resp.data == {"events": ["This list may not be empty."]}
@@ -158,6 +164,41 @@ def test_org_validate_events(token_client, organizer, team, event):
assert resp.data == {"events": [f"Object with slug={event.slug} does not exist."]}
@pytest.mark.django_db
def test_org_run_limit_events(token_client, organizer, team, event, event2):
resp = token_client.post('/api/v1/organizers/{}/exporters/eventdata/run/'.format(organizer.slug), data={
'_format': 'default',
}, format='json')
assert resp.status_code == 202
assert "download" in resp.data
resp = token_client.get("/" + resp.data["download"].split("/", 3)[3])
assert resp.status_code == 200
assert resp.getvalue().strip().count(b"\n") == 2
resp = token_client.post('/api/v1/organizers/{}/exporters/eventdata/run/'.format(organizer.slug), data={
'_format': 'default',
'events': [event.slug],
}, format='json')
assert resp.status_code == 202
assert "download" in resp.data
resp = token_client.get("/" + resp.data["download"].split("/", 3)[3])
assert resp.status_code == 200
assert resp.getvalue().strip().count(b"\n") == 1
team.all_events = False
team.limit_events.add(event)
team.save()
resp = token_client.post('/api/v1/organizers/{}/exporters/eventdata/run/'.format(organizer.slug), data={
'_format': 'default',
}, format='json')
assert resp.status_code == 202
assert "download" in resp.data
resp = token_client.get("/" + resp.data["download"].split("/", 3)[3])
assert resp.status_code == 200
assert resp.getvalue().strip().count(b"\n") == 1
@pytest.mark.django_db
def test_run_success(token_client, organizer, team, event):
resp = token_client.post('/api/v1/organizers/{}/events/{}/exporters/orderlist/run/'.format(organizer.slug, event.slug), data={