From d3ac5b3484fbe4871c52d2f6608e5027152db88d Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Mon, 27 Mar 2023 18:55:27 +0100 Subject: DELETE should 404 when nothing was deleted --- paste/__init__.py | 7 ++++--- paste/store.py | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/paste/__init__.py b/paste/__init__.py index 83cd6b5..f22b5d7 100644 --- a/paste/__init__.py +++ b/paste/__init__.py @@ -263,7 +263,8 @@ def application(environ: Env, start_response: StartResponse) -> Response: ) return [] elif environ["REQUEST_METHOD"] == "DELETE": - store.delete(conn, name) - start_response("204 No Content", []) - return [] + if store.delete(conn, name): + start_response("204 No Content", []) + return [] + return simple_response(start_response, "404 Not Found") return simple_response(start_response, "500 Internal Server Error") diff --git a/paste/store.py b/paste/store.py index 82e66c0..ec51a7f 100644 --- a/paste/store.py +++ b/paste/store.py @@ -54,4 +54,5 @@ def head(conn: Connection, name: str): def delete(conn: Connection, name: str): with conn: - conn.execute("DELETE FROM link WHERE name_hash = DATA_HASH(?)", (name,)) + cur = conn.execute("DELETE FROM link WHERE name_hash = DATA_HASH(?)", (name,)) + return cur.rowcount == 1 -- cgit v1.2.3-54-g00ecf