def test_new_user_invalid_email(self): """ Test creating new user with no email raises error Returns: """ with self.assertRaises(ValueError): User.create_user("", "testPass") with self.assertRaises(ValueError): User.create_user(None, "testPass")
def test_create_user_with_email_successful(self): """ Test creating a user is successful Returns: """ email = '*****@*****.**' password = '******' user = User() user = user.create_user(email=email, password=password) self.assertEqual(user.email, email) self.assertTrue(user.check_password(password))
def test_new_user_email_normalized(self): """ Test the email for a new user is normalized Returns: """ email = '*****@*****.**' user = User() user = user.create_user(email, 'qwerty uiop12') self.assertEqual(user.email, email.lower())
def post(cls): """ POST requests for login resource Returns: """ try: user_json = request.get_json() user_from_schema = user_schema.load(user_json, ) user = UserModel.find_by_email(user_from_schema.email) user_ip = get_client_ip(request) if user and user.check_password(user_from_schema.password): if not user.disabled: access_token, refresh_token = generate_auth_token( user, user_ip) time_now = datetime.datetime.now(pytz.utc) user_tracking = TrackLogin(user.id, ip_address=user_ip, created_on=time_now) user_tracking.save() return { "access_token": access_token, "refresh_token": refresh_token }, 200 return {"message": get_text("user_disabled")}, 401 return {"message": get_text("user_invalid")}, 401 except Exception as _: return {"message": get_text("user_error_logging_in")}, 500
def test_create_new_superuser(self): """ Test creating a new super user Returns: """ user = User.create_superuser('*****@*****.**', 'test123') self.assertEqual('Admin', user.role)
def test_user_exists(self): """ Test creating a user that already exists fails """ new_payload = self.payload with self.movies_app.app_context(): user = User.create_user(**self.payload) user.save() res = self.app.post(self.reg_url, json=new_payload) data = res.get_json() self.assertEqual(res.status_code, 400) self.assertEqual(data['message'], 'This email is already registered')
def post(cls): """ POST request for registration Resource Returns: """ user_json = request.get_json() user = user_schema.load(user_json, ) if not is_email_valid(user.email): return { "message": get_text("user_email_bad_format").format(user.email) }, 400 if UserModel.find_by_email(user.email): return {"message": get_text("user_email_exist")}, 400 user = user.create_user(user.email, user.password) user.save() return {"message": get_text("user_registered")}, 201
def test_create_valid_user_success(self): res = self.app.post(self.reg_url, json=self.payload) with self.movies_app.app_context(): user = User.find_by_email(self.payload['email']) self.assertTrue(user.check_password(self.payload['password'])) self.assertEqual(res.status_code, 201)