def test_find_post_with_invalid_categories(self): try: Post.find_post_by_keyword_pagination("") self.fail("Expect InvalidFieldError") except InvalidFieldError: pass
def search_post_by_keyword(): keyword = request.args["keyword"] or None page = request.args.get("page", 1) per_page = request.args.get("per_page", PER_PAGE) try: pagination = Post.find_post_by_keyword_pagination(keyword, page, per_page) return render_template("search_result.html", pagination=pagination, keyword=keyword, menu_items=default.categories) except Exception as e: abort(400)
def test_find_post_with_valid_info(self): pagination = Post.find_post_by_keyword_pagination("orem", 1, 3) self.assertEqual(len(pagination.items), 3)
def test_find_post_with_not_exist_keyword(self): pagination = Post.find_post_by_keyword_pagination("Java") self.assertEqual(len(pagination.items), 0)
def test_find_post_with_out_of_range_index(self): pagination = Post.find_post_by_keyword_pagination("Lorem", 4, 7) self.assertEqual(len(pagination.items), 0)
def test_find_post_with_invalid_pagination_param(self): pagination = Post.find_post_by_keyword_pagination("Lorem", 0, -2) self.assertEqual(len(pagination.items), 10)
def test_find_post_with_sql_injection(self): try: pagination = Post.find_post_by_keyword_pagination("Lorem';select * from user;--", 1, 3) self.fail("Expect InvalidFieldError") except: pass