|
@@ -1,8 +1,14 @@
|
|
|
from django.urls import resolve
|
|
from django.urls import resolve
|
|
|
from django.test import TestCase
|
|
from django.test import TestCase
|
|
|
|
|
+from django.contrib.auth.models import User
|
|
|
|
|
|
|
|
from accounts.views import register
|
|
from accounts.views import register
|
|
|
|
|
|
|
|
|
|
+def id():
|
|
|
|
|
+ id.counter += 1
|
|
|
|
|
+ return str(id.counter)
|
|
|
|
|
+id.counter = 0
|
|
|
|
|
+
|
|
|
# Create your tests here.
|
|
# Create your tests here.
|
|
|
class RegisterPageTest(TestCase):
|
|
class RegisterPageTest(TestCase):
|
|
|
|
|
|
|
@@ -22,3 +28,25 @@ class RegisterPageTest(TestCase):
|
|
|
|
|
|
|
|
self.assertTemplateUsed(response, 'register.html')
|
|
self.assertTemplateUsed(response, 'register.html')
|
|
|
|
|
|
|
|
|
|
+ def test_can_save_a_POST_request(self):
|
|
|
|
|
+ username = 'johndifool' + id()
|
|
|
|
|
+ response = self.client.post('/register', data={
|
|
|
|
|
+ 'username': username,
|
|
|
|
|
+ 'email': username + '@example.com',
|
|
|
|
|
+ 'password': 'abc123'
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ self.assertEqual(User.objects.count(), 1)
|
|
|
|
|
+ new_user = User.objects.first()
|
|
|
|
|
+ self.assertEqual(new_user.username, 'johndifool1')
|
|
|
|
|
+ self.assertEqual(new_user.email, 'johndifool1@example.com')
|
|
|
|
|
+
|
|
|
|
|
+ def test_redirects_after_POST(self):
|
|
|
|
|
+ username = 'johndifool' + id()
|
|
|
|
|
+ response = self.client.post('/register', data={
|
|
|
|
|
+ 'username': username,
|
|
|
|
|
+ 'email': username + '@example.com',
|
|
|
|
|
+ 'password': 'abc123'
|
|
|
|
|
+ })
|
|
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
|
|
+ self.assertEqual(response['location'], '/libraries/johndifool2/')
|