diff bio/tests/view_tests.py @ 581:ee87ea74d46b

For Django 1.4, rearranged project structure for new manage.py.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 May 2012 17:10:48 -0500
parents gpp/bio/tests/view_tests.py@452835f4429f
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bio/tests/view_tests.py	Sat May 05 17:10:48 2012 -0500
@@ -0,0 +1,78 @@
+"""
+View tests for the bio application.
+
+"""
+import datetime
+
+from django.contrib.auth.models import User
+from django.test import TestCase
+from django.core.urlresolvers import reverse, NoReverseMatch
+
+
+class MemberSearchTest(TestCase):
+
+    USERNAME = u'John'
+
+    def setUp(self):
+        user = User.objects.create_user(self.USERNAME, '', 'password')
+        user.save()
+
+        self.username = 'test_user'
+        self.pw = 'password'
+        self.user = User.objects.create_user(self.username, '', self.pw)
+        self.user.save()
+        self.assertTrue(self.client.login(username=self.username,
+            password=self.pw))
+
+    def tearDown(self):
+        self.client.logout()
+
+    def testValidName(self):
+        """
+        Test a valid username.
+        """
+
+        response = self.client.post(reverse('bio-member_search'),
+                            {'username': self.USERNAME},
+                            follow=True)
+
+        self.assertEqual(len(response.redirect_chain), 1)
+        if response.redirect_chain:
+            self.assertEqual(response.redirect_chain[0][0],
+                    'http://testserver' + reverse('bio-view_profile',
+                        kwargs={'username': self.USERNAME}))
+            self.assertEqual(response.redirect_chain[0][1], 302)
+
+        self.assertEqual(response.status_code, 200)
+
+    def testInvalidName(self):
+        """
+        Test a invalid username.
+        """
+
+        response = self.client.post(reverse('bio-member_search'),
+                            {'username': self.USERNAME + '!'})
+
+        self.assertEqual(response.status_code, 200)
+        self.assertContains(response, "That username does not exist.")
+
+    def testTrailingSpace(self):
+        """
+        Test a username with a trailing space.
+        """
+
+        try:
+            response = self.client.post(reverse('bio-member_search'),
+                                {'username': self.USERNAME + ' '},
+                                follow=True)
+        except NoReverseMatch:
+            self.fail('bit by a MySQL bug?')
+
+        self.assertEqual(len(response.redirect_chain), 1)
+        if response.redirect_chain:
+            self.assertEqual(response.redirect_chain[0][0],
+                    'http://testserver' + reverse('bio-view_profile',
+                        kwargs={'username': self.USERNAME}))
+            self.assertEqual(response.redirect_chain[0][1], 302)
+
+        self.assertEqual(response.status_code, 200)