diff --git a/.ds.baseline b/.ds.baseline index 53c246982..579df68d8 100644 --- a/.ds.baseline +++ b/.ds.baseline @@ -295,7 +295,7 @@ "filename": "tests/app/service/test_rest.py", "hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8", "is_verified": false, - "line_number": 1286, + "line_number": 1288, "is_secret": false } ], @@ -374,5 +374,5 @@ } ] }, - "generated_at": "2025-07-02T15:24:03Z" + "generated_at": "2025-07-02T16:06:12Z" } diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 0e0abc1fc..c659d3577 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -26,6 +26,7 @@ from app.enums import ( StatisticsType, TemplateType, ) +from app.errors import InvalidRequest from app.models import ( AnnualBilling, EmailBranding, @@ -38,6 +39,7 @@ from app.models import ( ServiceSmsSender, User, ) +from app.organization.rest import check_request_args from app.service.rest import ( get_service_statistics_for_specific_days, get_service_statistics_for_specific_days_by_user, @@ -3845,3 +3847,48 @@ def test_get_service_statistics_for_specific_days_by_user( hours=days * 24, total_notifications=mock_total_notifications, ) + + +def test_check_request_args_success(): + mock_request = MagicMock() + mock_request.args.get.side_effect = lambda key, default=None: { + "service_id": "abc123", + "name": "test service", + "email_from": "test@example.com", + }.get(key, default) + + result = check_request_args(mock_request) + assert result == ("abc123", "test service", "test@example.com") + + +@pytest.mark.parameterize( + "args_dict,expected_errors", + [ + ( + {}, + [ + {"service_id": ["Can't be empety"]}, + {"name": ["Can't be empty"]}, + {"email_from": ["Can't be empty"]}, + ], + ), + ( + {"service_id": "abc123"}, + [{"name": ["Can't be empty"]}, {"email_from", ["Can't be empty"]}], + ), + ( + {"service_id": "abc123", "name": "Test"}, + [{"email_from": ["Can't be empty"]}], + ), + ], +) +def test_check_request_args_missing_fields(args_dict, expected_errors): + mock_request = MagicMock() + mock_request.args.get.side_effect = lambda key, default=None: args_dict.get( + key, default + ) + with pytest.raises(InvalidRequest) as exc: + check_request_args(mock_request) + + assert exc.value.status_code == 400 + assert exc.value.message == expected_errors