def post(self): signup_request_format = reqparse.RequestParser() signup_request_format.add_argument('username', type=non_empty_str, required=True, help="SIGNUP-REQ-USERNAME") signup_request_format.add_argument('password', type=non_empty_str, required=True, help="SIGNUP-REQ-PASSWORD") signup_request_format.add_argument('first_name', type=non_empty_str, required=True, help="SIGNUP-REQ-FIRSTNAME") signup_request_format.add_argument('last_name', type=non_empty_str, required=False, help="SIGNUP-REQ-LASTNAME") params = signup_request_format.parse_args() log.info('SingUp kwargs: {}'.format(params)) try: session.rollback() response = signup(**params) session.commit() return response except ValueError as val_err: log.error(repr(val_err)) session.rollback() abort(400, message=val_err.message) except KeyError as key_err: log.error(repr(key_err)) session.rollback() abort(400, message="SIGNUP-INVALID-PARAM") except IOError as io_err: log.exception(io_err) session.rollback() abort(500, message="API-ERR-IO") except SQLAlchemyError as sa_err: log.exception(sa_err) session.rollback() abort(500, message="API-ERR-DB") finally: session.close()
def test_signup_key_error(self): param = dict( username='', password='******', first_name='testt', last_name='last' ) with self.assertRaises(ValueError) as err_empty_username: auth.signup(**param) param = dict( username='******', password='', first_name='test', last_name='last' ) with self.assertRaises(ValueError) as err_empty_password: auth.signup(**param) param = dict( username='******', password='******', first_name='', last_name='last' ) with self.assertRaises(ValueError) as err_empty_first_name: auth.signup(**param) self.assertEqual('SIGNUP-BAD-USERNAME', err_empty_username.exception.message) self.assertEqual('SIGNUP-REQ-PASSWORD', err_empty_password.exception.message) self.assertEqual('SIGNUP-REQ-FIRSTNAME', err_empty_first_name.exception.message)