示例#1
0
    class _UserForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True
        username = All(v.UnicodeString(strip=True, min=1, not_empty=True),
                       v.ValidUsername(edit, old_data))
        if edit:
            new_password = All(
                v.ValidPassword(),
                v.UnicodeString(strip=False, min=6, not_empty=False))
            password_confirmation = All(
                v.ValidPassword(),
                v.UnicodeString(strip=False, min=6, not_empty=False),
            )
            admin = v.StringBoolean(if_missing=False)
            chained_validators = [
                v.ValidPasswordsMatch('new_password', 'password_confirmation')
            ]
        else:
            password = All(v.ValidPassword(),
                           v.UnicodeString(strip=False, min=6, not_empty=True))
            password_confirmation = All(
                v.ValidPassword(),
                v.UnicodeString(strip=False, min=6, not_empty=False))
            chained_validators = [
                v.ValidPasswordsMatch('password', 'password_confirmation')
            ]

        active = v.StringBoolean(if_missing=False)
        firstname = v.UnicodeString(strip=True, min=1, not_empty=False)
        lastname = v.UnicodeString(strip=True, min=1, not_empty=False)
        email = All(v.Email(not_empty=True), v.UniqSystemEmail(old_data))
        extern_name = v.UnicodeString(strip=True, if_missing=None)
        extern_type = v.UnicodeString(strip=True, if_missing=None)
示例#2
0
    def test_ValidPasswordsMatch(self):
        validator = v.ValidPasswordsMatch('new_password',
                                          'password_confirmation')
        with pytest.raises(formencode.Invalid):
            validator.to_python({
                'new_password': '******',
                'password_confirmation': 'pass2'
            })

        with pytest.raises(formencode.Invalid):
            validator.to_python({
                'new_password': '******',
                'password_confirmation': 'pass2'
            })

        assert {
            'new_password': '******',
            'password_confirmation': 'pass'
        } == validator.to_python({
            'new_password': '******',
            'password_confirmation': 'pass'
        })

        assert {
            'new_password': '******',
            'password_confirmation': 'pass'
        } == validator.to_python({
            'new_password': '******',
            'password_confirmation': 'pass'
        })
示例#3
0
 def test_register_password_mismatch(self):
     response = self.app.post(
         url(controller='login', action='register'), {
             'username': '******',
             'password': '******',
             'password_confirmation': 'qwe123',
             'email': '*****@*****.**',
             'firstname': 'test',
             'lastname': 'test'
         })
     msg = validators.ValidPasswordsMatch()._messages['password_mismatch']
     response.mustcontain(msg)
示例#4
0
 def test_register_password_mismatch(self):
     response = self.app.post(base.url(controller='login', action='register'),
                                         {'username': '******',
                                          'password': '******',
                                          'password_confirmation': 'qwe123',
                                          'email': '*****@*****.**',
                                          'firstname': 'test',
                                          'lastname': 'test',
                                          '_session_csrf_secret_token': self.session_csrf_secret_token()})
     with test_context(self.app):
         msg = validators.ValidPasswordsMatch('password', 'password_confirmation')._messages['password_mismatch']
     response.mustcontain(msg)
示例#5
0
    class _PasswordChangeForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        current_password = v.ValidOldPassword(username)(not_empty=True)
        new_password = All(v.ValidPassword(),
                           v.UnicodeString(strip=False, min=6))
        new_password_confirmation = All(v.ValidPassword(),
                                        v.UnicodeString(strip=False, min=6))

        chained_validators = [
            v.ValidPasswordsMatch('new_password', 'new_password_confirmation')
        ]
示例#6
0
    class _PasswordResetConfirmationForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        email = v.UnicodeString(strip=True, not_empty=True)
        timestamp = v.Number(strip=True, not_empty=True)
        token = v.UnicodeString(strip=True, not_empty=True)
        password = All(v.ValidPassword(), v.UnicodeString(strip=False, min=6))
        password_confirm = All(v.ValidPassword(),
                               v.UnicodeString(strip=False, min=6))

        chained_validators = [
            v.ValidPasswordsMatch('password', 'password_confirm')
        ]
示例#7
0
    def test_ValidPasswordsMatch(self):
        validator = v.ValidPasswordsMatch()
        self.assertRaises(formencode.Invalid,
                    validator.to_python, {'password': '******',
                                          'password_confirmation': 'pass2'})

        self.assertRaises(formencode.Invalid,
                    validator.to_python, {'new_password': '******',
                                          'password_confirmation': 'pass2'})

        self.assertEqual({'new_password': '******',
                          'password_confirmation': 'pass'},
                    validator.to_python({'new_password': '******',
                                         'password_confirmation': 'pass'}))

        self.assertEqual({'password': '******',
                          'password_confirmation': 'pass'},
                    validator.to_python({'password': '******',
                                         'password_confirmation': 'pass'}))