Exemplo n.º 1
0
    def test_my_account_update(self):
        self.log_user()

        new_email = '*****@*****.**'
        new_name = 'NewName'
        new_lastname = 'NewLastname'
        new_password = '******'


        response = self.app.post(url('admin_settings_my_account_update'),
                                 params=dict(_method='put',
                                             username='******',
                                             new_password=new_password,
                                             password_confirmation = new_password,
                                             password='',
                                             name=new_name,
                                             lastname=new_lastname,
                                             email=new_email,))
        response.follow()

        assert 'Your account was updated successfully' in response.session['flash'][0][1], 'no flash message about success of change'
        user = self.sa.query(User).filter(User.username == 'test_admin').one()
        assert user.email == new_email , 'incorrect user email after update got %s vs %s' % (user.email, new_email)
        assert user.name == new_name, 'updated field mismatch %s vs %s' % (user.name, new_name)
        assert user.lastname == new_lastname, 'updated field mismatch %s vs %s' % (user.lastname, new_lastname)
        assert check_password(new_password, user.password) is True, 'password field mismatch %s vs %s' % (user.password, new_password)

        #bring back the admin settings
        old_email = '*****@*****.**'
        old_name = 'RhodeCode'
        old_lastname = 'Admin'
        old_password = '******'

        response = self.app.post(url('admin_settings_my_account_update'), params=dict(
                                                            _method='put',
                                                            username='******',
                                                            new_password=old_password,
                                                            password_confirmation = old_password,
                                                            password='',
                                                            name=old_name,
                                                            lastname=old_lastname,
                                                            email=old_email,))

        response.follow()
        self.checkSessionFlash(response,
                               'Your account was updated successfully')

        user = self.sa.query(User).filter(User.username == 'test_admin').one()
        assert user.email == old_email , 'incorrect user email after update got %s vs %s' % (user.email, old_email)

        assert user.email == old_email , 'incorrect user email after update got %s vs %s' % (user.email, old_email)
        assert user.name == old_name, 'updated field mismatch %s vs %s' % (user.name, old_name)
        assert user.lastname == old_lastname, 'updated field mismatch %s vs %s' % (user.lastname, old_lastname)
        assert check_password(old_password, user.password) is True , 'password updated field mismatch %s vs %s' % (user.password, old_password)
Exemplo n.º 2
0
    def test_register_ok(self):
        username = '******'
        password = '******'
        email = '*****@*****.**'
        name = 'testname'
        lastname = 'testlastname'

        response = self.app.post(
            url(controller='login', action='register'), {
                'username': username,
                'password': password,
                'password_confirmation': password,
                'email': email,
                'firstname': name,
                'lastname': lastname,
                'admin': True
            })  # This should be overriden
        self.assertEqual(response.status, '302 Found')
        self.checkSessionFlash(
            response, 'You have successfully registered into RhodeCode')

        ret = self.Session().query(User).filter(
            User.username == 'test_regular4').one()
        self.assertEqual(ret.username, username)
        self.assertEqual(check_password(password, ret.password), True)
        self.assertEqual(ret.email, email)
        self.assertEqual(ret.name, name)
        self.assertEqual(ret.lastname, lastname)
        self.assertNotEqual(ret.api_key, None)
        self.assertEqual(ret.admin, False)
Exemplo n.º 3
0
    def test_create(self):
        self.log_user()
        username = "******"
        password = "******"
        password_confirmation = password
        name = "name"
        lastname = "lastname"
        email = "*****@*****.**"

        response = self.app.post(
            url("users"),
            {
                "username": username,
                "password": password,
                "password_confirmation": password_confirmation,
                "firstname": name,
                "active": True,
                "lastname": lastname,
                "email": email,
            },
        )

        self.checkSessionFlash(response, """created user %s""" % (username))

        new_user = self.Session.query(User).filter(User.username == username).one()

        self.assertEqual(new_user.username, username)
        self.assertEqual(check_password(password, new_user.password), True)
        self.assertEqual(new_user.name, name)
        self.assertEqual(new_user.lastname, lastname)
        self.assertEqual(new_user.email, email)

        response.follow()
        response = response.follow()
        response.mustcontain("""newtestuser""")
Exemplo n.º 4
0
    def test_create(self):
        self.log_user()
        username = '******'
        password = '******'
        name = 'name'
        lastname = 'lastname'
        email = '*****@*****.**'

        response = self.app.post(url('users'), {'username':username,
                                               'password':password,
                                               'name':name,
                                               'active':True,
                                               'lastname':lastname,
                                               'email':email})


        assert '''created user %s''' % (username) in response.session['flash'][0], 'No flash message about new user'

        new_user = self.sa.query(User).filter(User.username == username).one()


        assert new_user.username == username, 'wrong info about username'
        assert check_password(password, new_user.password) == True , 'wrong info about password'
        assert new_user.name == name, 'wrong info about name'
        assert new_user.lastname == lastname, 'wrong info about lastname'
        assert new_user.email == email, 'wrong info about email'


        response.follow()
        response = response.follow()
        assert """edit">newtestuser</a>""" in response.body
Exemplo n.º 5
0
    def test_create(self):
        self.log_user()
        username = '******'
        password = '******'
        password_confirmation = password
        name = 'name'
        lastname = 'lastname'
        email = '*****@*****.**'

        response = self.app.post(
            url('users'), {
                'username': username,
                'password': password,
                'password_confirmation': password_confirmation,
                'firstname': name,
                'active': True,
                'lastname': lastname,
                'email': email
            })

        self.checkSessionFlash(response, '''Created user %s''' % (username))

        new_user = self.Session.query(User).\
            filter(User.username == username).one()

        self.assertEqual(new_user.username, username)
        self.assertEqual(check_password(password, new_user.password), True)
        self.assertEqual(new_user.name, name)
        self.assertEqual(new_user.lastname, lastname)
        self.assertEqual(new_user.email, email)

        response.follow()
        response = response.follow()
        response.mustcontain("""newtestuser""")
Exemplo n.º 6
0
    def test_register_ok(self):
        username = '******'
        password = '******'
        email = '*****@*****.**'
        name = 'testname'
        lastname = 'testlastname'

        response = self.app.post(url(controller='login', action='register'),
                                            {'username': username,
                                             'password': password,
                                             'password_confirmation': password,
                                             'email': email,
                                             'firstname': name,
                                             'lastname': lastname,
                                             'admin': True})  # This should be overriden
        self.assertEqual(response.status, '302 Found')
        self.checkSessionFlash(response, 'You have successfully registered into RhodeCode')

        ret = self.Session().query(User).filter(User.username == 'test_regular4').one()
        self.assertEqual(ret.username, username)
        self.assertEqual(check_password(password, ret.password), True)
        self.assertEqual(ret.email, email)
        self.assertEqual(ret.name, name)
        self.assertEqual(ret.lastname, lastname)
        self.assertNotEqual(ret.api_key, None)
        self.assertEqual(ret.admin, False)
Exemplo n.º 7
0
    def test_create(self):
        self.log_user()
        username = '******'
        password = '******'
        password_confirmation = password
        name = 'name'
        lastname = 'lastname'
        email = '*****@*****.**'

        response = self.app.post(url('users'),
                                 {'username':username,
                                   'password':password,
                                   'password_confirmation':password_confirmation,
                                   'name':name,
                                   'active':True,
                                   'lastname':lastname,
                                   'email':email})


        self.assertTrue('''created user %s''' % (username) in
                        response.session['flash'][0])

        new_user = self.Session.query(User).\
            filter(User.username == username).one()

        self.assertEqual(new_user.username,username)
        self.assertEqual(check_password(password, new_user.password),True)
        self.assertEqual(new_user.name,name)
        self.assertEqual(new_user.lastname,lastname)
        self.assertEqual(new_user.email,email)

        response.follow()
        response = response.follow()
        self.assertTrue("""edit">newtestuser</a>""" in response.body)
Exemplo n.º 8
0
    def test_create(self):
        self.log_user()
        username = '******'
        password = '******'
        password_confirmation = password
        name = 'name'
        lastname = 'lastname'
        email = '*****@*****.**'

        response = self.app.post(url('users'),
                             {'username': username,
                               'password': password,
                               'password_confirmation': password_confirmation,
                               'firstname': name,
                               'active': True,
                               'lastname': lastname,
                               'email': email})

        self.checkSessionFlash(response, '''Created user %s''' % (username))

        new_user = Session().query(User).\
            filter(User.username == username).one()

        self.assertEqual(new_user.username, username)
        self.assertEqual(check_password(password, new_user.password), True)
        self.assertEqual(new_user.name, name)
        self.assertEqual(new_user.lastname, lastname)
        self.assertEqual(new_user.email, email)

        response.follow()
        response = response.follow()
        response.mustcontain("""newtestuser""")
Exemplo n.º 9
0
    def test_register_ok(self):
        username = "******"
        password = "******"
        email = "*****@*****.**"
        name = "testname"
        lastname = "testlastname"

        response = self.app.post(
            url(controller="login", action="register"),
            {
                "username": username,
                "password": password,
                "password_confirmation": password,
                "email": email,
                "firstname": name,
                "lastname": lastname,
                "admin": True,
            },
        )  # This should be overriden
        self.assertEqual(response.status, "302 Found")
        self.checkSessionFlash(response, "You have successfully registered into rhodecode")

        ret = self.Session().query(User).filter(User.username == "test_regular4").one()
        self.assertEqual(ret.username, username)
        self.assertEqual(check_password(password, ret.password), True)
        self.assertEqual(ret.email, email)
        self.assertEqual(ret.name, name)
        self.assertEqual(ret.lastname, lastname)
        self.assertNotEqual(ret.api_key, None)
        self.assertEqual(ret.admin, False)
Exemplo n.º 10
0
    def test_create(self):
        self.log_user()
        username = '******'
        password = '******'
        password_confirmation = password
        name = 'name'
        lastname = 'lastname'
        email = '*****@*****.**'

        response = self.app.post(
            url('users'), {
                'username': username,
                'password': password,
                'password_confirmation': password_confirmation,
                'name': name,
                'active': True,
                'lastname': lastname,
                'email': email
            })

        self.assertTrue('''created user %s''' %
                        (username) in response.session['flash'][0])

        new_user = self.Session.query(User).\
            filter(User.username == username).one()

        self.assertEqual(new_user.username, username)
        self.assertEqual(check_password(password, new_user.password), True)
        self.assertEqual(new_user.name, name)
        self.assertEqual(new_user.lastname, lastname)
        self.assertEqual(new_user.email, email)

        response.follow()
        response = response.follow()
        self.assertTrue("""edit">newtestuser</a>""" in response.body)
Exemplo n.º 11
0
    def test_register_ok(self):
        username = '******'
        password = '******'
        email = '*****@*****.**'
        name = 'testname'
        lastname = 'testlastname'

        response = self.app.post(
            register_url, {
                'username': username,
                'password': password,
                'password_confirmation': password,
                'email': email,
                'firstname': name,
                'lastname': lastname,
                'admin': True
            })  # This should be overriden
        assert response.status == '302 Found'
        assert_session_flash(
            response, 'You have successfully registered with RhodeCode')

        ret = Session().query(User).filter(
            User.username == 'test_regular4').one()
        assert ret.username == username
        assert check_password(password, ret.password)
        assert ret.email == email
        assert ret.name == name
        assert ret.lastname == lastname
        assert ret.api_key is not None
        assert not ret.admin
Exemplo n.º 12
0
        def _password_change(new_user, password):
            # empty password
            if not new_user.password:
                return False

            # password check is only needed for RhodeCode internal auth calls
            # in case it's a plugin we don't care
            if not plugin:

                # first check if we gave crypted password back, and if it matches
                # it's not password change
                if new_user.password == password:
                    return False

                password_match = check_password(password, new_user.password)
                if not password_match:
                    return True

            return False
Exemplo n.º 13
0
    def test_api_create_user(self):
        username = '******'
        email = username + "@foo.com"

        id_, params = build_data(
            self.apikey, 'create_user',
            username=username,
            email=email,
            password='******')
        response = api_call(self.app, params)

        usr = UserModel().get_by_username(username)
        ret = {
            'msg': 'created new user `%s`' % (username,),
            'user': jsonify(usr.get_api_data(include_secrets=True)),
        }
        try:
            expected = ret
            assert check_password('example', usr.password)
            assert_ok(id_, expected, given=response.body)
        finally:
            fixture.destroy_user(usr.user_id)
Exemplo n.º 14
0
    def test_register_ok(self):
        username = '******'
        password = '******'
        email = '*****@*****.**'
        name = 'testname'
        lastname = 'testlastname'

        response = self.app.post(url(controller='login', action='register'),
                                            {'username':username,
                                             'password':password,
                                             'password_confirmation':password,
                                             'email':email,
                                             'name':name,
                                             'lastname':lastname})
        self.assertEqual(response.status , '302 Found')
        assert 'You have successfully registered into rhodecode' in response.session['flash'][0], 'No flash message about user registration'

        ret = self.sa.query(User).filter(User.username == 'test_regular4').one()
        assert ret.username == username , 'field mismatch %s %s' % (ret.username, username)
        assert check_password(password, ret.password) == True , 'password mismatch'
        assert ret.email == email , 'field mismatch %s %s' % (ret.email, email)
        assert ret.name == name , 'field mismatch %s %s' % (ret.name, name)
        assert ret.lastname == lastname , 'field mismatch %s %s' % (ret.lastname, lastname)
def test_check_password_accepts_unicode(password):
    result = auth.check_password(password.value, password.hashed)
    assert result
Exemplo n.º 16
0
    def test_my_account_update(self):
        self.log_user()

        new_email = '*****@*****.**'
        new_name = 'NewName'
        new_lastname = 'NewLastname'
        new_password = '******'

        response = self.app.post(url('admin_settings_my_account_update'),
                                 params=dict(
                                     _method='put',
                                     username='******',
                                     new_password=new_password,
                                     password_confirmation=new_password,
                                     password='',
                                     name=new_name,
                                     lastname=new_lastname,
                                     email=new_email,
                                 ))
        response.follow()

        assert 'Your account was updated successfully' in response.session[
            'flash'][0][1], 'no flash message about success of change'
        user = self.Session.query(User).filter(
            User.username == 'test_admin').one()
        assert user.email == new_email, 'incorrect user email after update got %s vs %s' % (
            user.email, new_email)
        assert user.name == new_name, 'updated field mismatch %s vs %s' % (
            user.name, new_name)
        assert user.lastname == new_lastname, 'updated field mismatch %s vs %s' % (
            user.lastname, new_lastname)
        assert check_password(
            new_password,
            user.password) is True, 'password field mismatch %s vs %s' % (
                user.password, new_password)

        #bring back the admin settings
        old_email = '*****@*****.**'
        old_name = 'RhodeCode'
        old_lastname = 'Admin'
        old_password = '******'

        response = self.app.post(url('admin_settings_my_account_update'),
                                 params=dict(
                                     _method='put',
                                     username='******',
                                     new_password=old_password,
                                     password_confirmation=old_password,
                                     password='',
                                     name=old_name,
                                     lastname=old_lastname,
                                     email=old_email,
                                 ))

        response.follow()
        self.checkSessionFlash(response,
                               'Your account was updated successfully')

        user = self.Session.query(User).filter(
            User.username == 'test_admin').one()
        assert user.email == old_email, 'incorrect user email after update got %s vs %s' % (
            user.email, old_email)

        assert user.email == old_email, 'incorrect user email after update got %s vs %s' % (
            user.email, old_email)
        assert user.name == old_name, 'updated field mismatch %s vs %s' % (
            user.name, old_name)
        assert user.lastname == old_lastname, 'updated field mismatch %s vs %s' % (
            user.lastname, old_lastname)
        assert check_password(
            old_password, user.password
        ) is True, 'password updated field mismatch %s vs %s' % (user.password,
                                                                 old_password)