This commit is contained in:
Kenneth Kehl
2024-11-11 08:38:08 -08:00
parent 5d902dc945
commit c0912622f1

View File

@@ -5,7 +5,7 @@ from unittest import TestCase
from unittest.mock import ANY
import pytest
from flask import Request, current_app, url_for
from flask import Flask, current_app, request, url_for
from freezegun import freeze_time
from sqlalchemy.exc import SQLAlchemyError
@@ -3679,58 +3679,61 @@ def test_get_service_notification_statistics_by_day(
assert response == mock_data
test_app = Flask(__name__)
class TestCheckRequestArgs(TestCase):
def test_check_request_args_valid(self):
request = Request.from_values(
with test_app.test_request_context(
query_string={
"service_id": "123",
"name": "Test Service",
"email_from": "test@example.com",
}
)
):
service_id, name, email_from = check_request_args(request)
self.assertEqual(service_id, "123")
self.assertEqual(name, "Test Service")
self.assertEqual(email_from, "test@example.com")
service_id, name, email_from = check_request_args(request)
self.assertEqual(service_id, "123")
self.assertEqual(name, "Test Service")
self.assertEqual(email_from, "test@example.com")
def test_check_request_args_missing_service_id(self):
request = Request.from_values(
with test_app.test_request_context(
query_string={"name": "Test Service", "email_from": "test@example.com"}
)
):
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"service_id": ["Can't be empty"]}, context.exception.errors)
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"service_id": ["Can't be empty"]}, context.exception.errors)
def test_check_request_args_missing_name(self):
request = Request.from_values(
with test_app.test_request_context(
query_string={"service_id": "123", "email_from": "test@example.com"}
)
):
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"name": ["Can't be empty"]}, context.exception.errors)
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"name": ["Can't be empty"]}, context.exception.errors)
def test_check_request_args_missing_email_from(self):
request = Request.from_values(
with test_app.test_request_context(
query_string={"service_id": "123", "name": "Test Service"}
)
):
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"email_from": ["Can't be empty"]}, context.exception.errors)
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"email_from": ["Can't be empty"]}, context.exception.errors)
def test_check_request_args_missing_all(self):
request = Request.from_values(query_string={})
with test_app.test_request_context(query_string={}):
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"email_from": ["Can't be empty"]}, context.exception.errors)
self.assertIn({"name": ["Can't be empty"]}, context.exception.errors)
self.assertIn({"service_id": ["Can't be empty"]}, context.exception.errors)
with self.assertRaise(InvalidRequest) as context:
check_request_args(request)
self.assertEqual(context.exception.status_code, 400)
self.assertIn({"email_from": ["Can't be empty"]}, context.exception.errors)
self.assertIn({"name": ["Can't be empty"]}, context.exception.errors)
self.assertIn({"service_id": ["Can't be empty"]}, context.exception.errors)