26 lines
1.2 KiB
Python
26 lines
1.2 KiB
Python
from django.test import TestCase, Client
|
|
|
|
from interface import models
|
|
|
|
class SubmissionTestCase(TestCase):
|
|
|
|
def setUp(self):
|
|
self.client = Client()
|
|
|
|
def test_submission(self):
|
|
ensemble = models.Ensemble.objects.create(name="The Be Sharps", passphrase="Homer", bucket="virtual-orchestra")
|
|
project = ensemble.projects.create(name='Baby on Board')
|
|
|
|
response = self.client.post('/register', {'code': ensemble.code, 'passphrase': ensemble.passphrase})
|
|
self.assertRedirects(response, '/')
|
|
|
|
response = self.client.post(f"/projects/{project.pk}/submission", {'name': 'Ned', 'instrument': 'God'})
|
|
|
|
upload = response.context['upload']
|
|
self.assertEqual(upload['url'], f"https://{ensemble.bucket}.s3.amazonaws.com/")
|
|
self.assertRegex(upload['fields']['key'], r'^baby-on-board\/[0-9T\-]+_ned_god_\$\{filename\}$')
|
|
self.assertEqual(upload['fields']['success_action_redirect'], 'http://testserver/projects/1/submission/1/complete')
|
|
|
|
self.assertEqual(models.Submission.objects.count(), 1)
|
|
self.assertRedirects(self.client.get(f"/projects/{project.pk}/submission/1/cancel"), '/projects/1')
|
|
self.assertEqual(models.Submission.objects.count(), 0) |