Exemplo n.º 1
0
 def test_add_user(self):
     """
     Method checks that add user method actually adds a user
     to the database
     """
     _pword = "test"
     user = User(email='*****@*****.**', password=_pword, fname='Fname', lname="Lname")
     check = user.save_user()
     self.assertTrue(check, "User should be added")
     self.assertTrue(
         user.id,
         "User doesnot contain id so he is not added to the db"
     )
Exemplo n.º 2
0
 def test_no_repeated_users_added(self):
     """
     Method checks that add user method actually adds a user
     to the database
     """
     _pword = "test"
     user = User(email='*****@*****.**', password=_pword)
     check = user.save_user()
     self.assertFalse(check, "User should already exist")
     self.assertFalse(
         user.id,
         "User doesnot contain id so he is not added to the db"
     )
Exemplo n.º 3
0
    def post(self):
        """
        Handles post requests for registration of a new user
        """
        post_data = request.get_json()
        fname = strip_white_space(post_data.get('fname')) or None
        lname = strip_white_space(post_data.get('lname')) or None
        email = strip_white_space(post_data.get('email'),
                                  skip_check_symbols=True) or None
        password = strip_white_space(post_data.get('password')) or None

        if not validate_email(email):
            return abort(400, 'Invalid Email Address')
        if not fname or not lname or not fname.isalpha() or not lname.isalpha(
        ):
            return abort(400, "First and last name must be provided")
        if not password:
            return abort(400, "Password must be provided")

        user = User(email=email,
                    fname=fname.capitalize(),
                    lname=lname.capitalize(),
                    password=password)

        try:
            check = user.save_user()
            if check:
                auth_token = user.generate_authentication_token()
                user_data = dict(data=marshal(user, USER))
                response = {
                    'status': 'success',
                    'message': 'Successfully Registered',
                    'auth_token': auth_token.decode('utf-8')
                }
                response.update(user_data)
                return response, 201
            else:
                response = {'status': 'fail', 'message': 'User Exists'}
                return response, 409
        except Exception as e:
            return abort(500, 'Error creating your account:{}'.format(e))