def setUp(self): super(TestExistingUsers, self).setUp() self.user = User(username='******', fullname='Test User', passhash='hash') server.db.session.add(self.user) server.db.session.commit() self.user.get_token()
def setUp(self): # leave the database blank to make it in memory super(TestToken, self).setUp() # add a user self.test_user = User(username='******', fullname='Testing user', passhash='hash') server.db.session.add(self.test_user) server.db.session.commit()
def setUp(self): super(TestGroups, self).setUp() # create a user to have a token self.user = User(username='******', fullname='Test User', passhash='hash') self.user.verified = True server.db.session.add(self.user) server.db.session.commit() self.user.get_token() return
def test_get_members_by_non_member(self): """A user that is not part of the group ask for members.""" new_user = User(username='******', fullname='Another user', passhash='hash') server.db.session.add(new_user) server.db.session.commit() new_user.get_token() url = '/group/{group_id}/users/'.format(group_id=self.group.id) rv = self.get(url, token=new_user.token) self.assertJsonError(rv, 403, 'User is not member of this group') return
def test_delete_not_admin(self): """Try to delete a group when the user is not the admin.""" new_user = User(username='******', fullname='Another user', passhash='hash') server.db.session.add(new_user) server.db.session.commit() new_user.get_token() rv = self.delete('/group/{group_id}/'.format(group_id=self.group.id), token=new_user.token) self.assertJsonError(rv, 403, 'User is not admin') return
def test_add_user(self): """Try to add another user in the group.""" new_user = User(username='******', fullname='Another user', passhash='hash') server.db.session.add(new_user) server.db.session.commit() request = {'usernames': [new_user.username]} url = '/group/{group_id}/users/'.format(group_id=self.group.id) rv = self.post(url, request, token=self.user.token) self.assertJsonOk(rv) return
def test_add_no_owner(self): """Try to add users without being the group admin.""" new_user = User(username='******', fullname='Another user', passhash='hash') server.db.session.add(new_user) server.db.session.commit() new_user.get_token() request = {'usernames': [new_user.username]} url = '/group/{group_id}/users/'.format(group_id=self.group.id) rv = self.post(url, request, token=new_user.token) self.assertJsonError(rv, 403, 'User is not admin') return
def setUp(self): super(TestExistingGroups, self).setUp() # create a user to have a token self.user = User(username='******', fullname='Test User', passhash='hash') self.user.verified = True server.db.session.add(self.user) # create a group for the user self.group = Group(name='Test group', owner=self.user) server.db.session.add(self.group) server.db.session.commit() self.user.get_token() return
def test_get_members_by_member(self): """Non admin user requests the list of group members.""" new_user = User(username='******', fullname='Another user', passhash='hash') server.db.session.add(new_user) new_user.groups.append(self.group) server.db.session.commit() new_user.get_token() url = '/group/{group_id}/users/'.format(group_id=self.group.id) rv = self.get(url, token=new_user.token) self.assertJsonOk(rv) json = loads(rv.data) self.assertTrue('users' in json) self.assertEqual(len(json['users']), 2) # owner and new user return
def create_user(): """Create a new user. **Example request** .. sourcecode:: http { "username": "******", "full_name": "I'm a person", "password": "******" } **Success (200)**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json { "status": "OK" } :statuscode 200: Success :statuscode 406: Invalid characters in username (:py:class:`InvalidUsernameException`) :statuscode 409: Username already exists (:py:class:`UsernameAlreadyExistsException`) """ json = request.get_json(force=True) invalid_characters = ' !@#$%^&*()|[]{}/\\\'"`~"' for char in invalid_characters: if char in json['username']: raise InvalidUsernameException() try: new_user = User(username=json['username'], fullname=json['full_name'], passhash=json['password'], verified=False) db.session.add(new_user) db.session.commit() except IntegrityError: raise UsernameAlreadyExistsException() return jsonify(status='OK')
def create_user(self, name='test', fullname='Test User', passhash='hash', verified=True, create_token=False): """Add a user. :param name: The name for the user :param fullname: The full name of the user :param passhash: The user passhash :return: The user :rtype: :py:class:`server.User`""" user = User(username=name, fullname=fullname, passhash=passhash) user.verified = verified server.db.session.add(user) server.db.session.commit() if create_token: user.get_token() return user
def test_update_owner(self): """Change the group owner.""" new_user = User(username='******', fullname='Another user', passhash='hash') server.db.session.add(new_user) server.db.session.commit() group_id = self.group.id new_username = new_user.username request = {'admin': new_user.username} rv = self.put('/group/{group_id}/'.format(group_id=group_id), request, token=self.user.token) self.assertJsonOk(rv) # check the database group = Group.query.get(group_id) self.assertEqual(group.owner, new_username) return