53 lines
2.4 KiB
Python
53 lines
2.4 KiB
Python
from django.test import TestCase, Client
|
|
|
|
from interface import models
|
|
|
|
class SubmissionTestCase(TestCase):
|
|
|
|
@staticmethod
|
|
def setUpTestData():
|
|
e1 = models.Ensemble.objects.create(name='The Be Sharps', code="1234", passphrase='Homer')
|
|
e1.projects.create(name='Baby on Board')
|
|
e2 = models.Ensemble.objects.create(name='Lisa and the Bleeding Gums', code="2345", passphrase="Maggie")
|
|
e2.projects.create(name='Baker St')
|
|
|
|
def setUp(self):
|
|
self.client = Client()
|
|
|
|
def test_submission_upload(self):
|
|
response = self.client.post('/register', {'code': '12-34', 'passphrase': 'Homer'})
|
|
self.assertRedirects(response, '/')
|
|
|
|
response = self.client.post(f"/projects/1/submission", {'name': 'Ned', 'instrument': 'Harp', 'method': 'upload'})
|
|
self.assertRedirects(response, '/projects/1/submission/1/upload')
|
|
|
|
response = self.client.get(response.url)
|
|
upload = response.context['upload']
|
|
self.assertEqual(upload['url'], f"http://localhost:9000/{models.BUCKET}")
|
|
self.assertRegex(upload['fields']['key'], r'^baby-on-board\/submissions\/[0-9T\-]+_ned_harp_\$\{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/1/submission/1/cancel"), '/projects/1')
|
|
self.assertEqual(models.Submission.objects.count(), 0)
|
|
|
|
def test_submission_link(self):
|
|
response = self.client.post('/register', {'code': '12-34', 'passphrase': 'Homer'})
|
|
self.assertRedirects(response, '/')
|
|
|
|
response = self.client.post(f"/projects/1/submission", {'name': 'Ned', 'instrument': 'Harp', 'method': 'link'})
|
|
self.assertRedirects(response, '/projects/1/submission/1/link')
|
|
|
|
url = 'https://drive.google.com/a/path/to/a/video.mp4#g6e6e4a23'
|
|
|
|
response = self.client.post(f"/projects/1/submission/1/link", {'url': url})
|
|
self.assertRedirects(response, '/projects/1/submission/1')
|
|
|
|
response = self.client.get('/projects/1/submission/1')
|
|
self.assertContains(response, "Thankyou for your submission")
|
|
|
|
response = self.client.get('/projects/1')
|
|
self.assertContains(response, 'Ned')
|
|
|
|
s = models.Submission.objects.get(pk=1)
|
|
self.assertEqual(s.download_url, url) |