def update_user(self, *args, **kwargs): """Update user row in the database. :param args: tuple of arguments. :param kwargs: dictionary, where key is updated field of user model. """ username = kwargs.pop('username', None) if not username: raise SearchCriteriaRequired( "Username for WHEN statement is required." ) if len(kwargs) < 1: raise NotEnoughArguments() if 'password' in kwargs.keys(): kwargs['password'] = generate_password_hash(kwargs['password']) updated_fields = self.__user_defined_fields(kwargs) update_query, query_args = construct_update_sql(**updated_fields) query_args.append(username) try: self.db_manager.execute_sql(update_query, query_args) except OperationalError as exc: logger.error(exc)
def update_user(self, *args, **kwargs): """ Update user row in the database. :param args: tuple of arguments. :param kwargs: dictionary, where key is updated field of user model. """ username = kwargs.pop('username', None) if not username: raise SearchCriteriaRequired( "Username for WHEN statement is required.") # NOQA if len(kwargs) < 1: raise NotEnoughArguments() if 'password' in kwargs.keys(): kwargs['password'] = generate_password_hash(kwargs['password']) updated_fields = self.__user_defined_fields(kwargs) update_query, query_args = construct_update_sql(**updated_fields) query_args.append(username) try: self.db_manager.execute_sql(update_query, query_args) except OperationalError as exc: logger.error(exc)
def test_construct_update_sql(updated_fields): update_query, query_args = construct_update_sql(**updated_fields) assert len(updated_fields) == len(query_args)