Files
TimeTracker/tests
MacJediWizard 6cbe869fc1 fix(tests, api): four small CI failures from v5.5.6 test-fixture tightening
Bundles four narrow fixes surfaced by the comprehensive CI run after
v5.5.6 enabled SQLite FK enforcement and refreshed test fixtures. Each
fix is independent; bundled here only to keep PR overhead low.

1. tests/test_routes/test_api_v1_expenses_complete.py
   - Add missing `User` import. `test_expense_permissions` references
     `User.query.filter(...)` but `User` was never imported, causing a
     NameError at test runtime.

2. tests/test_client_single_simplification.py
   - `Client(...status="active")` failed with TypeError because the
     Client model's __init__ does not accept `status` as a keyword
     (column default already sets it to "active"). Set the attribute
     after construction.

3. tests/test_utils/test_api_auth_enhanced.py
   - `User(username=..., is_active=True)` failed because User.__init__
     does not accept `is_active`. Set the attribute after construction.
   - 9 occurrences of `app.test_request_context(remote_addr="...")`
     failed with `TypeError: EnvironBuilder.__init__() got an unexpected
     keyword argument 'remote_addr'`. Werkzeug removed the keyword;
     replace with `environ_overrides={"REMOTE_ADDR": "..."}` which is
     the supported equivalent.

4. app/routes/api_v1_time_entries.py
   - DELETE /api/v1/time-entries/<id> returned 415 Unsupported Media
     Type when called without an `application/json` Content-Type, even
     though the body is optional (only used to capture an audit reason).
     Switch to `request.get_json(silent=True)` so the endpoint accepts
     DELETE requests with no body. Same change applied to no other
     methods; POST/PUT continue to require explicit JSON.

The route file also picked up a black/isort pass from the project
auto-formatter; behaviour is identical to before, only whitespace and
import grouping differ.

Test plan
- pytest tests/test_routes/test_api_v1_expenses_complete.py::TestAPIExpensesComplete::test_expense_permissions
- pytest tests/test_client_single_simplification.py::test_manual_entry_shows_select_when_multiple_clients
- pytest tests/test_utils/test_api_auth_enhanced.py::TestAuthenticateToken
- pytest tests/test_routes/test_api_v1_time_entries_complete.py::TestAPITimeEntriesComplete::test_delete_time_entry_uses_service_layer
2026-05-14 16:44:06 -04:00
..
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00
2026-03-08 06:50:42 +01:00