File tree Expand file tree Collapse file tree 2 files changed +27
-7
lines changed
Expand file tree Collapse file tree 2 files changed +27
-7
lines changed Original file line number Diff line number Diff line change 88from . import faq as faq_util
99
1010
11+ def safe_int (value , default = 1 ):
12+ """
13+ Safely convert a value to integer, default to 1 if conversion fails.
14+ """
15+ try :
16+ return int (value ) if value else default
17+ except (ValueError , TypeError ):
18+ return default
19+
20+
1121@app .route ("/" )
1222def index ():
1323 return render_template (
@@ -89,11 +99,11 @@ def techreportlanding(page_id):
8999 requested_geo = request .args .get ("geo" ) or "ALL"
90100 requested_rank = request .args .get ("rank" ) or "ALL"
91101 requested_category = request .args .get ("category" ) or "CMS"
92- requested_page = request .args .get ("page" ) or 1
93- requested_page = int (requested_page )
102+ requested_page = safe_int (
103+ request .args .get ("page" )
104+ ) # TODO: After security scanner is off, return 400 if not an int
94105 selected_techs = request .args .get ("selected" )
95- selected_rows = request .args .get ("rows" ) or 10
96- selected_rows = str (selected_rows )
106+ selected_rows = str (safe_int (request .args .get ("rows" ), default = 10 ))
97107
98108 last_page = request .args .get ("last_page" ) or False
99109
Original file line number Diff line number Diff line change @@ -234,15 +234,25 @@ def test_tech_report_drilldown(client):
234234
235235
236236def test_tech_report_drilldown_wordpress (client ):
237+ response = client .get ("/reports/techreport/tech?tech=WordPress&geo=ALL&rank=ALL" )
238+ assert response .status_code == 200
239+
240+
241+ def test_tech_report_category (client ):
242+ response = client .get ("/reports/techreport/category?geo=ALL&rank=ALL&category=CMS" )
243+ assert response .status_code == 200
244+
245+
246+ def test_tech_report_category_pages (client ):
237247 response = client .get (
238- "/reports/techreport/tech?tech=WordPress& geo=ALL&rank=ALL"
248+ "/reports/techreport/category? geo=ALL&rank=ALL&category=CMS&page=2 "
239249 )
240250 assert response .status_code == 200
241251
242252
243- def test_tech_report_category (client ):
253+ def test_tech_report_category_pages_fallback (client ):
244254 response = client .get (
245- "/reports/techreport/category?geo=ALL&rank=ALL&category=CMS"
255+ "/reports/techreport/category?geo=ALL&rank=ALL&category=CMS&page=defaults_to_1 "
246256 )
247257 assert response .status_code == 200
248258
You can’t perform that action at this time.
0 commit comments