def setUp(self): self.app = create_app(TestConfig) self.app.app_context().push() db.create_all() self.user = User(username="******", password="******") self.user.save() self.token = self.user.generate_auth_token()
def post(self): """Handles the POST call to the CreateUserAPI.""" data = self.parser.parse_args() username = data.get('username') password = data.get('password') if User.user_exist(username): abort(400, 'SignUpFailed: A User with the specified username ' 'already exist') new_user = User(username=username, password=password) new_user.save() token = new_user.generate_auth_token() return {'token': token.decode('utf-8')}, 201
def authenticate_token(token, password): """Autheticate User with the provideded token.""" user = User.verify_token(token) if user: g.user = user return True return False
def verify_token(token): token = request.headers.get('Token') if not token: abort(401, message='Token is required in the Request Header!') try: user = User.verify_auth_token(token) except ValueError: abort(401, message='You have supplied an Invalid TOKEN') if not user: abort(401, message='TOKEN Supplied Expired') g.user = user return True
class Testmodels(unittest.TestCase): def setUp(self): self.app = create_app(TestConfig) self.app.app_context().push() db.create_all() self.user = User(username="******", password="******") self.user.save() self.token = self.user.generate_auth_token() def test_user_model(self): self.assertGreater(self.user.id, 0) def test_verify_password(self): self.assertTrue(self.user.verify_password("wahab")) def test_get_user(self): user = User.get_user("tester", "wahab") self.assertIsNotNone(user) def test_verify_token(self): self.assertTrue(User.verify_token(self.token)) def test_verify_invalid_token(self): invalid_token = "this-is-no-way-a-token" self.assertFalse(User.verify_token(invalid_token)) def test_expired_token(self): token = self.user.generate_auth_token(expiration=1) time.sleep(2) self.assertFalse(self.user.verify_token(token)) def test_user_exist(self): self.assertTrue(User.user_exist("tester"))
def post(self): """Handles the post call to the LoginUserAPI. Return: [Response] containing the token if login is successful """ data = self.parser.parse_args() user = User.get_user(data['username'], data['password']) if not user: abort(400, "Username or password not correct") token = user.generate_auth_token() return {'token': token.decode('utf-8')}
def post(self): """Handles the POST call to the CreateUserAPI.""" data = self.parser.parse_args() username = data.get('username') password = data.get('password') if User.user_exist(username): abort( 400, 'SignUpFailed: A User with the specified username ' 'already exist') new_user = User(username=username, password=password) new_user.save() token = new_user.generate_auth_token() return {'token': token.decode('utf-8')}, 201
def __create_new_user(self): # create a user an instance of the User Model user = User(self.username.title().strip(), self.password) user.hash_password() return user
def test_user_exist(self): self.assertTrue(User.user_exist("tester"))
def test_verify_invalid_token(self): invalid_token = "this-is-no-way-a-token" self.assertFalse(User.verify_token(invalid_token))
def test_verify_token(self): self.assertTrue(User.verify_token(self.token))
def test_get_user(self): user = User.get_user("tester", "wahab") self.assertIsNotNone(user)