diff --git a/app/v2/broadcast/post_broadcast.py b/app/v2/broadcast/post_broadcast.py
index 6f9e56142..6833babde 100644
--- a/app/v2/broadcast/post_broadcast.py
+++ b/app/v2/broadcast/post_broadcast.py
@@ -55,6 +55,7 @@ def create_broadcast():
},
status=BroadcastStatusType.PENDING_APPROVAL,
api_key_id=api_user.id,
+ stubbed=authenticated_service.restricted
# The client may pass in broadcast_json['expires'] but it’s
# simpler for now to ignore it and have the rules around expiry
# for broadcasts created with the API match those created from
diff --git a/tests/app/v2/broadcast/test_post_broadcast.py b/tests/app/v2/broadcast/test_post_broadcast.py
index a364e3eaa..773622a24 100644
--- a/tests/app/v2/broadcast/test_post_broadcast.py
+++ b/tests/app/v2/broadcast/test_post_broadcast.py
@@ -5,6 +5,7 @@ from freezegun import freeze_time
from tests import create_authorization_header
from unittest.mock import ANY
from . import sample_cap_xml_documents
+from app.dao.broadcast_message_dao import dao_get_broadcast_message_by_id_and_service_id
def test_broadcast_for_service_without_permission_returns_400(
@@ -111,6 +112,30 @@ def test_valid_post_cap_xml_broadcast_returns_201(
assert response_json['updated_at'] is None
+@pytest.mark.parametrize("training_mode_service", [True, False])
+def test_valid_post_cap_xml_broadcast_sets_stubbed_to_true_for_training_mode_services(
+ client,
+ sample_broadcast_service,
+ training_mode_service
+):
+ sample_broadcast_service.restricted = training_mode_service
+ auth_header = create_authorization_header(service_id=sample_broadcast_service.id)
+
+ response = client.post(
+ path='/v2/broadcast',
+ data=sample_cap_xml_documents.WAINFLEET,
+ headers=[('Content-Type', 'application/cap+xml'), auth_header],
+ )
+
+ assert response.status_code == 201
+ response_json = json.loads(response.get_data(as_text=True))
+
+ broadcast_message = dao_get_broadcast_message_by_id_and_service_id(
+ response_json['id'], sample_broadcast_service.id
+ )
+ assert broadcast_message.stubbed == training_mode_service
+
+
@pytest.mark.parametrize('xml_document', (
'Oh no',
'',