From e695e0eec736919938eb574d5b40842f76551d96 Mon Sep 17 00:00:00 2001 From: Mai Yer Lee Date: Tue, 28 Jan 2025 09:40:00 -0600 Subject: [PATCH] Update schema to require `budget` field on /can-funding-budgets (#3336) * feat: make budget required on post can funding budgets * chore: remove service handling * chore: remove unit test --- backend/openapi.yml | 1 + backend/ops_api/ops/schemas/cans.py | 2 +- backend/ops_api/tests/ops/can/test_can_funding_budget.py | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/backend/openapi.yml b/backend/openapi.yml index 31a0fefe48..c8a8dc20aa 100644 --- a/backend/openapi.yml +++ b/backend/openapi.yml @@ -3048,6 +3048,7 @@ components: required: - fiscal_year - can_id + - budget FundingBudget: description: Funding Budget Object type: object diff --git a/backend/ops_api/ops/schemas/cans.py b/backend/ops_api/ops/schemas/cans.py index 4d333ac662..6fda76d35a 100644 --- a/backend/ops_api/ops/schemas/cans.py +++ b/backend/ops_api/ops/schemas/cans.py @@ -112,7 +112,7 @@ class FundingBudgetSchema(Schema): class CreateUpdateFundingBudgetSchema(Schema): fiscal_year = fields.Integer(required=True) can_id = fields.Integer(required=True) - budget = fields.Float(load_default=None) + budget = fields.Float(required=True) notes = fields.String(load_default=None) diff --git a/backend/ops_api/tests/ops/can/test_can_funding_budget.py b/backend/ops_api/tests/ops/can/test_can_funding_budget.py index 705d6ce92f..3fa2888dd3 100644 --- a/backend/ops_api/tests/ops/can/test_can_funding_budget.py +++ b/backend/ops_api/tests/ops/can/test_can_funding_budget.py @@ -102,6 +102,15 @@ def test_service_create_funding_budget(loaded_db): loaded_db.commit() +def test_funding_budget_post_400_missing_budget(budget_team_auth_client): + response = budget_team_auth_client.post( + "/api/v1/can-funding-budgets/", json={"can_id": 500, "fiscal_year": 2024, "notes": "This is a note"} + ) + + assert response.status_code == 400 + assert response.json["budget"][0] == "Missing data for required field." + + # Testing updating CANs by PATCH @pytest.mark.usefixtures("app_ctx") def test_funding_budget_patch(budget_team_auth_client, mocker):