class AccountFormTests(MyJobsBase): def setUp(self): super(AccountFormTests, self).setUp() self.user = UserFactory() self.name = PrimaryNameFactory(user=self.user) def test_password_form(self): invalid_data = [ { 'data': {'password': '******', 'new_password1': '7dY=Ybtk', 'new_password2': '7dY=Ybtk'}, u'errors': [['password', [u"Wrong password."]]]}, { 'data': {'password': '******', 'new_password1': '7dY=Ybtk', 'new_password2': 'notnewpassword'}, u'errors': [[u'new_password2', [u'The new password fields did not match.']], [u'new_password1', [u'The new password fields did not match.']]], }, ] for item in invalid_data: form = ChangePasswordForm(user=self.user, data=item['data']) self.failIf(form.is_valid()) self.assertEqual(form.errors[item[u'errors'][0][0]], item[u'errors'][0][1]) form = ChangePasswordForm(user=self.user,data={'password': '******', 'new_password1': '7dY=Ybtk', 'new_password2': '7dY=Ybtk'}) self.failUnless(form.is_valid()) form.save() self.failUnless(self.user.check_password('7dY=Ybtk'))
class AccountFormTests(TestCase): def setUp(self): self.user = UserFactory() self.name = PrimaryNameFactory(user=self.user) def test_password_form(self): invalid_data = [ { "data": {"password": "******", "new_password1": "newpassword", "new_password2": "newpassword"}, u"errors": [["password", [u"Wrong password."]]], }, { "data": {"password": "******", "new_password1": "newpassword", "new_password2": "notnewpassword"}, u"errors": [ [u"new_password2", [u"The new password fields did not match."]], [u"new_password1", [u"The new password fields did not match."]], ], }, ] for item in invalid_data: form = ChangePasswordForm(user=self.user, data=item["data"]) self.failIf(form.is_valid()) self.assertEqual(form.errors[item[u"errors"][0][0]], item[u"errors"][0][1]) form = ChangePasswordForm( user=self.user, data={"password": "******", "new_password1": "anothersecret", "new_password2": "anothersecret"}, ) self.failUnless(form.is_valid()) form.save() self.failUnless(self.user.check_password("anothersecret")) def test_no_name_account_form(self): """ Leaving both the first and last name fields blank produces a valid save. It also deletes the primary name object from the Name model. """ data = {"gravatar": "*****@*****.**", "user": self.user} form = EditAccountForm(data, **{"user": self.user}) self.assertTrue(form.is_valid()) form.save(self.user) self.assertEqual(Name.objects.count(), 0) def test_both_names_account_form(self): """ Filling out both name fields produces a valid save. """ data = {"given_name": "Alicia", "family_name": "Smith", "gravatar": "*****@*****.**"} form = EditAccountForm(data, **{"user": self.user}) self.assertTrue(form.is_valid()) def test_partial_name_account_form(self): """ Filling out only the first name or only the last name produces an error. """ data = {"given_name": "Alicia", "gravatar": "*****@*****.**", "user": self.user} form = EditAccountForm(data, **{"user": self.user}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors["family_name"][0], "Both a first and last name required.")
class AccountFormTests(TestCase): def setUp(self): self.user = UserFactory() self.name = PrimaryNameFactory(user=self.user) def test_password_form(self): invalid_data = [ { 'data': { 'password': '******', 'new_password1': 'newpassword', 'new_password2': 'newpassword' }, u'errors': [['password', [u"Wrong password."]]] }, { 'data': { 'password': '******', 'new_password1': 'newpassword', 'new_password2': 'notnewpassword' }, u'errors': [[ u'new_password2', [u'The new password fields did not match.'] ], [ u'new_password1', [u'The new password fields did not match.'] ]], }, ] for item in invalid_data: form = ChangePasswordForm(user=self.user, data=item['data']) self.failIf(form.is_valid()) self.assertEqual(form.errors[item[u'errors'][0][0]], item[u'errors'][0][1]) form = ChangePasswordForm(user=self.user, data={ 'password': '******', 'new_password1': 'anothersecret', 'new_password2': 'anothersecret' }) self.failUnless(form.is_valid()) form.save() self.failUnless(self.user.check_password('anothersecret')) def test_no_name_account_form(self): """ Leaving both the first and last name fields blank produces a valid save. It also deletes the primary name object from the Name model. """ data = {"gravatar": "*****@*****.**", "user": self.user} form = EditAccountForm(data, **{'user': self.user}) self.assertTrue(form.is_valid()) form.save(self.user) self.assertEqual(Name.objects.count(), 0) def test_both_names_account_form(self): """ Filling out both name fields produces a valid save. """ data = { "given_name": "Alicia", "family_name": "Smith", "gravatar": "*****@*****.**" } form = EditAccountForm(data, **{'user': self.user}) self.assertTrue(form.is_valid()) def test_partial_name_account_form(self): """ Filling out only the first name or only the last name produces an error. """ data = { "given_name": "Alicia", "gravatar": "*****@*****.**", "user": self.user } form = EditAccountForm(data, **{'user': self.user}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['family_name'][0], "Both a first and last name required.")
class AccountFormTests(TestCase): def setUp(self): self.user = UserFactory() self.name = PrimaryNameFactory(user=self.user) self.client = TestClient() def test_password_form(self): invalid_data = [ { 'data': {'password': '******', 'new_password1': 'newpassword', 'new_password2': 'newpassword'}, u'errors': [['password', [u"Wrong password."]]]}, { 'data': {'password': '******', 'new_password1': 'newpassword', 'new_password2': 'notnewpassword'}, u'errors': [[u'new_password2', [u'The new password fields did not match.']], [u'new_password1', [u'The new password fields did not match.']]], }, ] for item in invalid_data: form = ChangePasswordForm(user=self.user, data=item['data']) self.failIf(form.is_valid()) self.assertEqual(form.errors[item[u'errors'][0][0]], item[u'errors'][0][1]) form = ChangePasswordForm(user=self.user,data={'password': '******', 'new_password1': 'anothersecret', 'new_password2': 'anothersecret'}) self.failUnless(form.is_valid()) form.save() self.failUnless(self.user.check_password('anothersecret')) def test_no_name_account_form(self): """ Leaving both the first and last name fields blank produces a valid save. It also deletes the primary name object from the Name model. """ data = {"gravatar": "*****@*****.**", "user": self.user} form = EditAccountForm(data, **{'user':self.user}) self.assertTrue(form.is_valid()) form.save(self.user) self.assertEqual(Name.objects.count(), 0) def test_both_names_account_form(self): """ Filling out both name fields produces a valid save. """ data = {"given_name": "Alicia", "family_name": "Smith", "gravatar": "*****@*****.**"} form = EditAccountForm(data, **{'user':self.user}) self.assertTrue(form.is_valid()) def test_partial_name_account_form(self): """ Filling out only the first name or only the last name produces an error. """ data = {"given_name": "Alicia", "gravatar": "*****@*****.**", "user": self.user} form = EditAccountForm(data, **{'user':self.user}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['family_name'][0], "Both a first and last name required.") def test_gravatar_email_list(self): """ Dropdowns for selecting the user's preferred Gravatar email should be the only dropdowns that include "Do not use Gravatar" as an option - others should default to the user's primary email address. """ self.client.login_user(self.user) response = self.client.get(reverse('edit_communication')) soup = BeautifulSoup(response.content) options = soup.select('#id_digest_email option') self.assertEqual(len(options), 1) self.assertTrue(self.user.gravatar in options[0]) response = self.client.get(reverse('edit_basic')) soup = BeautifulSoup(response.content) options = soup.select('#id_gravatar option') self.assertEqual(len(options), 2) self.assertTrue('Do not use Gravatar' in options[0]) self.assertTrue(self.user.gravatar in options[1])
class AccountFormTests(TestCase): def setUp(self): self.user = UserFactory() self.name = PrimaryNameFactory(user=self.user) self.client = TestClient() def test_password_form(self): invalid_data = [ { 'data': { 'password': '******', 'new_password1': 'newpassword', 'new_password2': 'newpassword' }, u'errors': [['password', [u"Wrong password."]]] }, { 'data': { 'password': '******', 'new_password1': 'newpassword', 'new_password2': 'notnewpassword' }, u'errors': [[ u'new_password2', [u'The new password fields did not match.'] ], [ u'new_password1', [u'The new password fields did not match.'] ]], }, ] for item in invalid_data: form = ChangePasswordForm(user=self.user, data=item['data']) self.failIf(form.is_valid()) self.assertEqual(form.errors[item[u'errors'][0][0]], item[u'errors'][0][1]) form = ChangePasswordForm(user=self.user, data={ 'password': '******', 'new_password1': 'anothersecret', 'new_password2': 'anothersecret' }) self.failUnless(form.is_valid()) form.save() self.failUnless(self.user.check_password('anothersecret')) def test_no_name_account_form(self): """ Leaving both the first and last name fields blank produces a valid save. It also deletes the primary name object from the Name model. """ data = {"gravatar": "*****@*****.**", "user": self.user} form = EditAccountForm(data, **{'user': self.user}) self.assertTrue(form.is_valid()) form.save(self.user) self.assertEqual(Name.objects.count(), 0) def test_both_names_account_form(self): """ Filling out both name fields produces a valid save. """ data = { "given_name": "Alicia", "family_name": "Smith", "gravatar": "*****@*****.**" } form = EditAccountForm(data, **{'user': self.user}) self.assertTrue(form.is_valid()) def test_partial_name_account_form(self): """ Filling out only the first name or only the last name produces an error. """ data = { "given_name": "Alicia", "gravatar": "*****@*****.**", "user": self.user } form = EditAccountForm(data, **{'user': self.user}) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['family_name'][0], "Both a first and last name required.") def test_gravatar_email_list(self): """ Dropdowns for selecting the user's preferred Gravatar email should be the only dropdowns that include "Do not use Gravatar" as an option - others should default to the user's primary email address. """ self.client.login_user(self.user) response = self.client.get(reverse('edit_communication')) soup = BeautifulSoup(response.content) options = soup.select('#id_digest_email option') self.assertEqual(len(options), 1) self.assertTrue(self.user.gravatar in options[0]) response = self.client.get(reverse('edit_basic')) soup = BeautifulSoup(response.content) options = soup.select('#id_gravatar option') self.assertEqual(len(options), 2) self.assertTrue('Do not use Gravatar' in options[0]) self.assertTrue(self.user.gravatar in options[1])