Mercurial > public > sg101
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)