polyphonic/interface/tests/test_submission.py
2020-09-06 22:22:28 +10:00

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)