コード例 #1
0
ファイル: test_forms.py プロジェクト: kepinae/MyJobs
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'))
コード例 #2
0
ファイル: forms.py プロジェクト: panyang/MyJobs
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.")
コード例 #3
0
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.")
コード例 #4
0
ファイル: forms.py プロジェクト: jpaezsa/MyJobs
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])
コード例 #5
0
ファイル: forms.py プロジェクト: jpaezsa/MyJobs
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])