polyphonic/interface/tests/test_submission.py
2020-09-13 15:54:10 +10:00

30 lines
1.3 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")
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'})
#self.assertRedirects(response, '/projects/1/submission/1/upload')
self.skipTest("Need to mock S3")
response = self.client.get(response.url)
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)