"""Function tests for bulk closing statement periods.""" import json import pytest from collaborator.logic import statement_period from tests.testutils import db @db.test_schema_default_seed def test_bulk_close_statement_periods(auth_client, mocker): """Test bulk close statement periods handler.""" mocker.patch.object( statement_period.ows_notifications, "trigger_closed_period_notifications", ) mock_get_vendors_for_feature = mocker.patch.object( statement_period.ows_account, "get_vendors_for_feature", ) mock_get_vendors_for_feature.return_value = [123, 456] result = auth_client.put( "/statement-period/bulk-close", data=json.dumps( { "direct_payments_enabled": True, "period_name": "May 2025", "new_abacus_statement_period_id": 123, } ), content_type="application/json", ) assert result.status_code == 204 @db.test_schema_default_seed @pytest.mark.parametrize( "params", [ {}, {"direct_payments_enabled": True}, {"direct_payments_enabled": True, "period_name": ""}, {"direct_payments_enabled": True, "period_name": "May 2025"}, { "direct_payments_enabled": False, "period_name": "May 2025", "new_abacus_statement_period_id": 123, }, ], ) def test_bulk_close_statement_periods_bad_params(auth_client, params): """Test bulk close statement periods handler.""" result = auth_client.put( "/statement-period/bulk-close", data=json.dumps(params), content_type="application/json", ) assert result.status_code == 400