1313
1414from concurrent .futures import ThreadPoolExecutor
1515from typing import Any
16- from unittest .mock import AsyncMock , MagicMock
1716
1817import pytest
1918
2221 DecisioningCapabilities ,
2322 DecisioningPlatform ,
2423 InMemoryTaskRegistry ,
25- ProductConfigStore ,
2624 SingletonAccounts ,
2725)
2826from adcp .decisioning .handler import PlatformHandler
2927from adcp .decisioning .implementation_config import ProductConfigStore as _ProductConfigStoreProto
3028from adcp .server .base import ToolContext
3129
32-
3330# ---------------------------------------------------------------------------
3431# Fixtures
3532# ---------------------------------------------------------------------------
@@ -80,6 +77,17 @@ def _make_handler(
8077 )
8178
8279
80+ def _create_success (media_buy_id : str ):
81+ from adcp .types import CreateMediaBuySuccessResponse
82+
83+ return CreateMediaBuySuccessResponse (
84+ media_buy_id = media_buy_id ,
85+ confirmed_at = "2026-05-01T00:00:00Z" ,
86+ revision = 1 ,
87+ packages = [],
88+ )
89+
90+
8391# ---------------------------------------------------------------------------
8492# Tests
8593# ---------------------------------------------------------------------------
@@ -100,9 +108,8 @@ class _Platform(DecisioningPlatform):
100108
101109 async def create_media_buy (self , req , ctx , configs = None ):
102110 received_configs .append (configs or {})
103- from adcp .types import CreateMediaBuySuccessResponse
104111
105- return CreateMediaBuySuccessResponse ( media_buy_id = "mb_001" , packages = [] )
112+ return _create_success ( "mb_001" )
106113
107114 handler = _make_handler (_Platform (), executor , config_store = _Store ())
108115 req = _make_request (["pid1" , "pid2" , "pid3" ])
@@ -132,9 +139,8 @@ class _Platform(DecisioningPlatform):
132139
133140 async def create_media_buy (self , req , ctx , configs = None ):
134141 received_configs .append (configs or {})
135- from adcp .types import CreateMediaBuySuccessResponse
136142
137- return CreateMediaBuySuccessResponse ( media_buy_id = "mb_002" , packages = [] )
143+ return _create_success ( "mb_002" )
138144
139145 handler = _make_handler (_Platform (), executor , config_store = _Store ())
140146 req = _make_request (["pid1" , "pid2" , "pid3" ])
@@ -156,9 +162,7 @@ class _Platform(DecisioningPlatform):
156162 accounts = SingletonAccounts (account_id = "seller" )
157163
158164 async def create_media_buy (self , req , ctx , configs = None ):
159- from adcp .types import CreateMediaBuySuccessResponse
160-
161- return CreateMediaBuySuccessResponse (media_buy_id = "mb_003" , packages = [])
165+ return _create_success ("mb_003" )
162166
163167 handler = _make_handler (_Platform (), executor , config_store = _Store ())
164168 req = _make_request (["pid1" ])
@@ -183,9 +187,7 @@ class _Platform(DecisioningPlatform):
183187 accounts = SingletonAccounts (account_id = "seller" )
184188
185189 async def create_media_buy (self , req , ctx , configs = None ):
186- from adcp .types import CreateMediaBuySuccessResponse
187-
188- return CreateMediaBuySuccessResponse (media_buy_id = "mb_004" , packages = [])
190+ return _create_success ("mb_004" )
189191
190192 handler = _make_handler (_Platform (), executor , config_store = _Store ())
191193 req = _make_request (["pid1" ])
@@ -213,9 +215,8 @@ class _Platform(DecisioningPlatform):
213215
214216 async def create_media_buy (self , req , ctx , configs = None ):
215217 received_configs .append (configs or {})
216- from adcp .types import CreateMediaBuySuccessResponse
217218
218- return CreateMediaBuySuccessResponse ( media_buy_id = "mb_005" , packages = [] )
219+ return _create_success ( "mb_005" )
219220
220221 handler = _make_handler (_Platform (), executor , config_store = _Store ())
221222 req = _make_request (None ) # proposal_id flow, packages=None
@@ -236,9 +237,8 @@ class _Platform(DecisioningPlatform):
236237
237238 async def create_media_buy (self , req , ctx , configs = None ):
238239 received_configs .append (configs or {})
239- from adcp .types import CreateMediaBuySuccessResponse
240240
241- return CreateMediaBuySuccessResponse ( media_buy_id = "mb_006" , packages = [] )
241+ return _create_success ( "mb_006" )
242242
243243 import warnings
244244
@@ -271,9 +271,8 @@ class _Platform(DecisioningPlatform):
271271
272272 async def create_media_buy (self , req , ctx ): # no configs kwarg
273273 received_req_ids .append (req .idempotency_key )
274- from adcp .types import CreateMediaBuySuccessResponse
275274
276- return CreateMediaBuySuccessResponse ( media_buy_id = "mb_007" , packages = [] )
275+ return _create_success ( "mb_007" )
277276
278277 handler = _make_handler (_Platform (), executor , config_store = _Store ())
279278 req = _make_request (["pid1" ])
@@ -287,9 +286,9 @@ async def create_media_buy(self, req, ctx): # no configs kwarg
287286
288287def test_product_config_store_protocol_exported () -> None :
289288 """ProductConfigStore is importable from adcp.decisioning."""
290- from adcp .decisioning import ProductConfigStore as PCS
289+ from adcp .decisioning import ProductConfigStore as ProductConfigStoreExport
291290
292- assert PCS is _ProductConfigStoreProto
291+ assert ProductConfigStoreExport is _ProductConfigStoreProto
293292
294293
295294def test_no_store_with_configs_kwarg_emits_warning (executor ) -> None :
@@ -301,9 +300,7 @@ class _Platform(DecisioningPlatform):
301300 accounts = SingletonAccounts (account_id = "seller" )
302301
303302 async def create_media_buy (self , req , ctx , configs = None ):
304- from adcp .types import CreateMediaBuySuccessResponse
305-
306- return CreateMediaBuySuccessResponse (media_buy_id = "mb_008" , packages = [])
303+ return _create_success ("mb_008" )
307304
308305 with warnings .catch_warnings (record = True ) as caught :
309306 warnings .simplefilter ("always" )
0 commit comments