From 337dd2414b41e28a308a0c6954fa0d590bc4856a Mon Sep 17 00:00:00 2001 From: dandds Date: Wed, 8 Aug 2018 14:05:59 -0400 Subject: [PATCH] catch bad request_id in request form GET --- atst/domain/requests.py | 4 ++-- tests/routes/test_request_new.py | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/atst/domain/requests.py b/atst/domain/requests.py index 843c7243..c4b29cd9 100644 --- a/atst/domain/requests.py +++ b/atst/domain/requests.py @@ -1,4 +1,4 @@ -from sqlalchemy import exists, and_ +from sqlalchemy import exists, and_, exc from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.orm.attributes import flag_modified @@ -149,5 +149,5 @@ class Requests(object): try: db.session.query(Request).filter_by(id=request_id, creator=user_id).one() return True - except NoResultFound: + except (NoResultFound, exc.DataError): return False diff --git a/tests/routes/test_request_new.py b/tests/routes/test_request_new.py index 1a722ca4..6a0ccb86 100644 --- a/tests/routes/test_request_new.py +++ b/tests/routes/test_request_new.py @@ -62,3 +62,10 @@ def test_ccpo_can_view_request(client, user_session): response = client.get("/requests/new/1/{}".format(request.id), follow_redirects=True) assert response.status_code == 200 + + +def test_nonexistent_request(client, user_session): + user_session() + response = client.get("/requests/new/1/foo", follow_redirects=True) + + assert response.status_code == 404