63 lines
2.7 KiB
Python
63 lines
2.7 KiB
Python
from django.test import TestCase, Client
|
|
|
|
from interface import models
|
|
|
|
class RegisterTestCase(TestCase):
|
|
|
|
def setUp(self):
|
|
self.client = Client()
|
|
|
|
@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 test_redirect(self):
|
|
response = self.client.get('/')
|
|
self.assertRedirects(response, '/register?')
|
|
|
|
def test_redirect_project(self):
|
|
response = self.client.get('/projects/1')
|
|
self.assertRedirects(response, '/register?')
|
|
|
|
def test_redirect_with_code(self):
|
|
response = self.client.get('/?code=123-456-789')
|
|
self.assertRedirects(response, '/register?code=123-456-789')
|
|
|
|
def test_register(self):
|
|
response = self.client.post('/register', {'code': '123-456-789', })
|
|
self.assertFormError(response, 'form', 'passphrase', 'This field is required.')
|
|
|
|
response = self.client.post('/register', {'code': '123-456-789', 'passphrase': 'Foo'})
|
|
self.assertFormError(response, 'form', None, 'Incorrect code or passphrase')
|
|
|
|
response = self.client.post('/register', {'code': '12-34', 'passphrase': 'Homer'})
|
|
self.assertRedirects(response, '/')
|
|
|
|
response = self.client.get(response.url)
|
|
self.assertEqual(response.context['object'].pk, 1)
|
|
|
|
# revisting original url get redirected back to homepage
|
|
response = self.client.get('/?code=12-34')
|
|
response = self.client.get(response.url)
|
|
response = self.client.get(response.url)
|
|
self.assertEqual(response.context['object'].pk, 1)
|
|
|
|
# providing a new code
|
|
response = self.client.get('/?code=23-45')
|
|
self.assertRedirects(response, '/register?code=23-45')
|
|
response = self.client.get(response.url)
|
|
self.assertQuerysetEqual(response.context['current'], ['<Ensemble: The Be Sharps>'])
|
|
#self.assertEqual(response.context['form'].code.initial, 'foo')
|
|
response = self.client.post('/register', {'code': '23-45', 'passphrase': 'Maggie'})
|
|
self.assertRedirects(response, '/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.context['object'].pk, 2)
|
|
|
|
# can use previous link to switch back without passphrase
|
|
response = self.client.get('/?code=12-34')
|
|
response = self.client.get(response.url)
|
|
response = self.client.get(response.url)
|
|
self.assertEqual(response.context['object'].pk, 1) |