Juan Denis and Claude Opus 5
b31f8c7c5f
test(api): assert the 500 behaviour instead of Flask internals
...
test_internal_error_handler_is_registered read app.error_handler_spec, a Flask
internal whose shape has moved between releases, and proved only that something
was registered. A handler can be registered and still return HTML or log
nothing, so the test could not fail for either way the guarantee actually breaks.
Now driven through app.handle_exception(), Flask's own entry point for an
unhandled exception, asserting the response is JSON and that the request was
logged. Not done by registering a route that raises: the `app` fixture is
function-scoped but wraps a session-scoped Flask object, so the route would leak
into every later test and collide on re-registration. PROPAGATE_EXCEPTIONS is
forced off for the call because TESTING=True turns it on, which re-raises before
any handler runs.
The log assertion matches this handler's own wording rather than just the path.
Flask's log_exception() already emits "Exception on /path [GET]" before any
handler runs, so a path-only assertion passes even with the handler's logging
deleted — confirmed by mutation, which is how the first version of this test was
caught being vacuous. Both mutations (return HTML, drop the log) now fail, on
different assertions.
Raised by a reviewer on the PR.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-16 18:06:19 -04:00
..
2026-07-07 20:29:31 -04:00
2026-08-13 14:57:51 -04:00
2026-07-09 05:27:22 -04:00
2026-08-12 21:48:21 -04:00
2026-08-12 18:15:53 -04:00
2026-08-06 02:59:14 -04:00
2026-08-16 05:27:08 -04:00
2026-06-12 17:31:26 -04:00
2026-05-31 14:46:47 -04:00
2026-05-31 16:08:13 -04:00
2026-06-12 17:33:29 -04:00
2026-06-01 02:39:05 -04:00
2026-07-25 14:15:29 -04:00
2026-08-05 02:38:41 -04:00
2026-08-16 18:06:19 -04:00
2026-08-06 02:59:14 -04:00
2026-08-04 08:53:27 -04:00
2026-07-21 22:57:33 -04:00
2026-07-01 20:49:41 -04:00
2026-08-12 20:26:04 -04:00
2026-08-05 02:38:41 -04:00
2026-08-09 13:53:59 -04:00
2026-08-05 02:38:41 -04:00
2026-07-02 22:36:34 -04:00
2026-07-07 20:29:25 -04:00
2026-06-19 13:22:43 -04:00
2026-06-24 14:19:32 -04:00
2026-07-07 20:29:25 -04:00
2026-07-09 04:41:00 -04:00
2026-08-05 13:36:33 -04:00
2026-07-09 04:41:00 -04:00
2026-07-07 20:29:25 -04:00
2026-07-09 04:41:00 -04:00
2026-06-24 14:27:08 -04:00
2026-06-24 14:20:43 -04:00
2026-07-09 04:41:00 -04:00
2026-08-05 13:36:33 -04:00
2026-08-05 13:36:33 -04:00
2026-07-07 20:29:25 -04:00
2026-08-06 02:59:14 -04:00
2026-07-25 12:38:56 -04:00
2026-06-23 18:49:04 -04:00
2026-07-25 15:48:36 -04:00
2026-07-03 15:21:22 -04:00
2026-07-11 01:22:49 -04:00
2026-07-04 01:46:34 -04:00
2026-08-06 02:59:14 -04:00
2026-07-02 01:04:03 -04:00
2026-07-09 05:02:54 -04:00
2026-07-02 01:04:03 -04:00
2026-07-21 22:57:33 -04:00
2026-07-25 16:19:33 -04:00
2026-06-24 14:24:13 -04:00
2026-06-23 21:15:16 -04:00
2026-05-05 14:03:31 -04:00
2026-07-01 20:49:41 -04:00
2026-06-19 10:13:50 -04:00
2026-06-19 09:54:40 -04:00
2026-08-12 18:15:53 -04:00
2026-06-23 18:23:47 -04:00
2026-07-09 04:41:00 -04:00
2026-07-07 20:29:24 -04:00
2026-07-27 22:44:40 -04:00
2026-07-25 21:23:14 -04:00
2026-07-26 00:19:46 -04:00
2026-08-12 20:26:04 -04:00
2026-08-06 02:59:14 -04:00
2026-07-03 14:24:03 -04:00
2026-06-15 00:01:41 -04:00
2026-07-03 14:24:02 -04:00
2026-07-22 17:31:18 -04:00
2026-06-19 03:12:07 -04:00
2026-07-23 16:58:46 -04:00
2026-07-03 14:23:50 -04:00
2026-07-25 20:04:39 -04:00
2026-08-13 17:33:35 -04:00
2026-08-04 08:53:27 -04:00
2026-06-24 14:52:04 -04:00
2026-08-13 16:17:23 -04:00
2026-08-13 16:45:38 -04:00
2026-06-22 16:34:17 -04:00
2026-06-22 16:12:31 -04:00
2026-06-22 16:12:31 -04:00
2026-07-08 01:41:22 -04:00
2026-07-09 04:50:16 -04:00
2026-07-08 01:41:22 -04:00
2026-06-30 23:31:57 -04:00
2026-06-22 16:24:53 -04:00
2026-06-23 00:34:55 -04:00
2026-07-03 23:18:08 -04:00
2026-06-22 16:40:35 -04:00
2026-07-25 22:01:15 -04:00
2026-06-24 01:43:29 -04:00
2026-08-13 17:26:14 -04:00
2026-07-07 20:29:24 -04:00
2026-06-19 01:34:02 -04:00
2026-07-04 01:28:16 -04:00
2026-08-12 09:05:56 -04:00
2026-08-06 02:59:14 -04:00
2026-06-23 21:33:53 -04:00
2026-07-09 04:55:53 -04:00
2026-08-06 02:59:14 -04:00
2026-06-24 14:32:41 -04:00
2026-06-24 14:36:08 -04:00
2026-06-23 20:04:04 -04:00
2026-07-08 23:12:48 -04:00
2026-08-06 02:59:14 -04:00
2026-08-13 17:48:36 -04:00
2026-08-13 17:44:11 -04:00
2026-08-06 02:59:14 -04:00
2026-08-06 02:59:14 -04:00
2026-08-13 23:07:10 -04:00
2026-08-05 02:38:41 -04:00
2026-07-03 15:21:34 -04:00
2026-08-02 18:56:33 -04:00
2026-08-13 16:03:25 -04:00
2026-08-06 03:01:24 -04:00
2026-08-13 17:27:59 -04:00
2026-07-09 04:41:00 -04:00
2026-07-08 01:41:13 -04:00
2026-06-23 21:15:16 -04:00
2026-07-08 01:41:13 -04:00
2026-07-09 04:41:00 -04:00
2026-08-06 02:59:14 -04:00
2026-08-03 23:44:56 -04:00
2026-08-11 19:43:46 -04:00
2026-07-07 20:29:24 -04:00
2026-07-10 23:06:09 -04:00
2026-07-07 20:29:31 -04:00
2026-08-06 02:59:14 -04:00
2026-07-22 19:22:43 -04:00
2026-06-19 09:37:30 -04:00
2026-06-23 20:57:40 -04:00
2026-07-25 16:51:44 -04:00
2026-08-13 17:27:59 -04:00
2026-07-22 00:48:13 -04:00
2026-07-18 00:59:19 -04:00
2026-07-03 14:23:50 -04:00
2026-07-03 15:21:23 -04:00
2026-07-01 20:49:41 -04:00
2026-08-06 02:59:14 -04:00
2026-07-09 03:35:53 -04:00
2026-07-09 02:57:23 -04:00
2026-07-09 03:05:08 -04:00
2026-07-10 01:13:14 -04:00
2026-07-04 01:39:53 -04:00
2026-07-09 03:21:14 -04:00
2026-07-09 03:28:08 -04:00
2026-07-04 01:16:29 -04:00
2026-07-04 01:46:34 -04:00
2026-07-09 03:35:53 -04:00
2026-07-04 01:34:54 -04:00
2026-07-10 01:13:14 -04:00
2026-07-04 01:39:53 -04:00
2026-07-09 03:13:54 -04:00
2026-07-08 01:41:43 -04:00
2026-07-03 14:23:11 -04:00
2026-07-03 15:21:50 -04:00
2026-07-25 20:35:19 -04:00
2026-07-02 00:15:10 -04:00
2026-08-05 01:18:32 -04:00
2026-08-13 16:12:19 -04:00
2026-06-15 23:20:00 -04:00
2026-07-07 20:29:31 -04:00
2026-06-21 19:57:02 -04:00
2026-08-13 14:36:24 -04:00
2026-07-07 20:29:29 -04:00
2026-07-08 01:41:43 -04:00
2026-07-09 04:41:00 -04:00
2026-07-14 22:34:24 -04:00
2026-07-09 04:41:00 -04:00
2026-08-05 02:38:41 -04:00
2026-06-12 18:35:43 -04:00
2026-05-31 16:08:32 -04:00
2026-07-02 22:19:14 -04:00
2026-07-08 01:41:43 -04:00
2026-07-25 14:02:08 -04:00
2026-08-05 01:18:32 -04:00
2026-07-25 12:46:59 -04:00
2026-07-25 13:56:09 -04:00
2026-08-05 13:36:20 -04:00
2026-07-25 13:40:00 -04:00
2026-08-06 02:59:14 -04:00
2026-08-13 14:57:51 -04:00
2026-06-23 19:33:44 -04:00
2026-06-23 19:33:44 -04:00
2026-07-14 22:22:18 -04:00
2026-06-23 19:33:44 -04:00
2026-08-12 13:16:58 -04:00
2026-06-20 22:25:06 -04:00
2026-06-20 22:38:38 -04:00
2026-08-04 08:53:27 -04:00
2026-08-12 13:08:49 -04:00
2026-08-16 15:54:08 -04:00
2026-08-05 13:36:20 -04:00
2026-08-06 02:59:14 -04:00
2026-07-07 20:29:29 -04:00
2026-05-03 07:07:57 -04:00
2026-08-05 02:38:41 -04:00
2026-07-22 16:36:58 -04:00
2026-07-22 17:24:36 -04:00
2026-07-22 17:24:36 -04:00
2026-07-11 00:26:40 -04:00
2026-08-04 08:53:27 -04:00
2026-06-21 01:54:51 -04:00
2026-08-02 18:35:25 -04:00
2026-06-19 16:52:40 -04:00
2026-07-08 01:41:43 -04:00
2026-07-31 14:56:37 -04:00
2026-06-23 20:04:04 -04:00
2026-07-07 20:29:24 -04:00
2026-07-01 22:55:11 -04:00
2026-08-06 02:59:14 -04:00
2026-06-25 01:06:44 -04:00
2026-05-05 14:03:31 -04:00
2026-08-12 05:52:37 -04:00
2026-06-23 17:31:28 -04:00
2026-06-24 14:06:05 -04:00
2026-08-13 16:33:47 -04:00
2026-07-07 20:29:23 -04:00
2026-07-07 20:29:23 -04:00
2026-08-05 02:38:41 -04:00
2026-07-09 04:41:00 -04:00
2026-08-04 08:53:27 -04:00
2026-08-06 02:59:14 -04:00
2026-07-01 00:31:22 -04:00
2026-08-06 02:59:14 -04:00
2026-07-03 14:24:29 -04:00
2026-08-05 02:38:41 -04:00
2026-08-05 02:38:41 -04:00
2026-06-30 23:48:28 -04:00
2026-08-12 09:27:05 -04:00
2026-08-06 02:59:14 -04:00
2026-07-08 23:58:45 -04:00
2026-07-09 04:41:00 -04:00
2026-08-13 16:22:33 -04:00
2026-08-13 15:59:47 -04:00
2026-06-24 14:40:08 -04:00
2026-08-06 02:59:14 -04:00
2026-08-06 02:59:14 -04:00
2026-07-09 04:41:00 -04:00
2026-07-09 04:41:00 -04:00
2026-07-07 20:29:24 -04:00
2026-06-22 01:45:15 -04:00
2026-07-25 20:09:05 -04:00
2026-07-21 23:26:13 -04:00
2026-06-23 18:23:47 -04:00
2026-08-06 09:32:40 -04:00
2026-07-10 02:38:46 -04:00
2026-08-06 00:33:46 -04:00
2026-07-23 09:25:01 -04:00
2026-07-23 09:25:01 -04:00
2026-07-20 01:16:16 -04:00
2026-08-06 02:59:14 -04:00
2026-08-05 02:38:41 -04:00
2026-02-10 16:03:19 -05:00
2026-07-25 05:41:00 -04:00
2026-08-09 02:32:55 -04:00
2026-06-19 14:02:24 -04:00
2026-08-05 02:38:41 -04:00
2026-07-09 04:41:00 -04:00
2026-08-12 21:48:21 -04:00
2026-07-03 15:21:23 -04:00