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