@@ -2091,30 +2091,51 @@ async def test_check_all_notifications_transmitted_success_logs(pg_base_config):
20912091
20922092
20932093@pytest .mark .anyio
2094- async def test_check_subscription_contents_no_site (pg_base_config ):
2095- """check_subscription_contents should fail if there is no active site"""
2094+ async def test_check_subscription_contents_no_site_edev_list (pg_base_config ):
2095+ """check_subscription_contents should match subscriptions to /edev even if there is NO site registered """
20962096
2097- resolved_params = {"subscribed_resource" : "/edev/1/derp/2/derc" }
2097+ agg_id = 1
2098+ resolved_params = {"subscribed_resource" : "/edev" }
2099+ active_test_procedure = generate_class_instance (
2100+ ActiveTestProcedure , step_status = {}, finished_zip_data = None , client_aggregator_id = agg_id
2101+ )
20982102
20992103 async with generate_async_session (pg_base_config ) as session :
2100- actual = await check_subscription_contents (resolved_params , session )
2101- assert_check_result (actual , False )
2104+ agg = (await session .execute (select (Aggregator ).where (Aggregator .aggregator_id == agg_id ))).scalar_one ()
2105+ session .add (
2106+ generate_class_instance (
2107+ Subscription ,
2108+ resource_type = SubscriptionResource .SITE ,
2109+ resource_id = None ,
2110+ scoped_site_id = None ,
2111+ aggregator = agg ,
2112+ )
2113+ )
2114+ await session .commit ()
2115+
2116+ async with generate_async_session (pg_base_config ) as session :
2117+ actual = await check_subscription_contents (resolved_params , session , active_test_procedure )
2118+ assert_check_result (actual , True )
21022119
21032120
21042121@pytest .mark .anyio
21052122async def test_check_subscription_contents_no_matches (pg_base_config ):
21062123 """check_subscription_contents should fail if there is no matching subscription"""
21072124
2125+ agg_id = 1
21082126 resolved_params = {"subscribed_resource" : "/edev/1/derp/2/derc" }
2127+ active_test_procedure = generate_class_instance (
2128+ ActiveTestProcedure , step_status = {}, finished_zip_data = None , client_aggregator_id = agg_id
2129+ )
21092130
21102131 # Fill up the DB with subscriptions
21112132 async with generate_async_session (pg_base_config ) as session :
2112- agg1 = (await session .execute (select (Aggregator ).where (Aggregator .aggregator_id == 1 ))).scalar_one ()
2133+ agg1 = (await session .execute (select (Aggregator ).where (Aggregator .aggregator_id == agg_id ))).scalar_one ()
21132134 agg2 = Aggregator (aggregator_id = 2 , name = "test2" , changed_time = datetime (2022 , 11 , 22 , tzinfo = timezone .utc ))
21142135 session .add (agg2 )
21152136
2116- site1 = generate_class_instance (Site , seed = 1001 , site_id = 1 , aggregator_id = 1 ) # Active Site
2117- site2 = generate_class_instance (Site , seed = 202 , site_id = 2 , aggregator_id = 1 )
2137+ site1 = generate_class_instance (Site , seed = 1001 , site_id = 1 , aggregator_id = agg_id ) # Active Site
2138+ site2 = generate_class_instance (Site , seed = 202 , site_id = 2 , aggregator_id = agg_id )
21182139 session .add (site1 )
21192140 session .add (site2 )
21202141 await session .flush ()
@@ -2170,24 +2191,28 @@ async def test_check_subscription_contents_no_matches(pg_base_config):
21702191 await session .commit ()
21712192
21722193 async with generate_async_session (pg_base_config ) as session :
2173- actual = await check_subscription_contents (resolved_params , session )
2194+ actual = await check_subscription_contents (resolved_params , session , active_test_procedure )
21742195 assert_check_result (actual , False )
21752196
21762197
21772198@pytest .mark .anyio
21782199async def test_check_subscription_contents_success (pg_base_config ):
21792200 """check_subscription_contents should succeed if there is at least 1 matching subscription"""
21802201
2202+ agg_id = 1
21812203 resolved_params = {"subscribed_resource" : "/edev/1/derp/2/derc" }
2204+ active_test_procedure = generate_class_instance (
2205+ ActiveTestProcedure , step_status = {}, finished_zip_data = None , client_aggregator_id = agg_id
2206+ )
21822207
21832208 # Fill up the DB with subscriptions
21842209 async with generate_async_session (pg_base_config ) as session :
2185- agg1 = (await session .execute (select (Aggregator ).where (Aggregator .aggregator_id == 1 ))).scalar_one ()
2210+ agg1 = (await session .execute (select (Aggregator ).where (Aggregator .aggregator_id == agg_id ))).scalar_one ()
21862211 agg2 = Aggregator (aggregator_id = 2 , name = "test2" , changed_time = datetime (2022 , 11 , 22 , tzinfo = timezone .utc ))
21872212 session .add (agg2 )
21882213
2189- site1 = generate_class_instance (Site , seed = 1001 , site_id = 1 , aggregator_id = 1 ) # Active Site
2190- site2 = generate_class_instance (Site , seed = 202 , site_id = 2 , aggregator_id = 1 )
2214+ site1 = generate_class_instance (Site , seed = 1001 , site_id = 1 , aggregator_id = agg_id ) # Active Site
2215+ site2 = generate_class_instance (Site , seed = 202 , site_id = 2 , aggregator_id = agg_id )
21912216 session .add (site1 )
21922217 session .add (site2 )
21932218 await session .flush ()
@@ -2255,23 +2280,27 @@ async def test_check_subscription_contents_success(pg_base_config):
22552280 await session .commit ()
22562281
22572282 async with generate_async_session (pg_base_config ) as session :
2258- actual = await check_subscription_contents (resolved_params , session )
2283+ actual = await check_subscription_contents (resolved_params , session , active_test_procedure )
22592284 assert_check_result (actual , True )
22602285
22612286
22622287@pytest .mark .anyio
22632288async def test_check_subscription_contents_success_unscoped (pg_base_config ):
22642289 """check_subscription_contents should succeed if there is an unscoped subscription - eg to /edev"""
22652290
2291+ agg_id = 1
22662292 resolved_params = {"subscribed_resource" : "/edev" }
2293+ active_test_procedure = generate_class_instance (
2294+ ActiveTestProcedure , step_status = {}, finished_zip_data = None , client_aggregator_id = agg_id
2295+ )
22672296
22682297 # Fill up the DB with subscriptions
22692298 async with generate_async_session (pg_base_config ) as session :
22702299 agg1 = (await session .execute (select (Aggregator ).where (Aggregator .aggregator_id == 1 ))).scalar_one ()
22712300 agg2 = Aggregator (aggregator_id = 2 , name = "test2" , changed_time = datetime (2022 , 11 , 22 , tzinfo = timezone .utc ))
22722301 session .add (agg2 )
22732302
2274- site1 = generate_class_instance (Site , seed = 1001 , site_id = 1 , aggregator_id = 1 ) # Active Site
2303+ site1 = generate_class_instance (Site , seed = 1001 , site_id = 1 , aggregator_id = agg_id ) # Active Site
22752304 session .add (site1 )
22762305 await session .flush ()
22772306
@@ -2290,7 +2319,7 @@ async def test_check_subscription_contents_success_unscoped(pg_base_config):
22902319 await session .commit ()
22912320
22922321 async with generate_async_session (pg_base_config ) as session :
2293- actual = await check_subscription_contents (resolved_params , session )
2322+ actual = await check_subscription_contents (resolved_params , session , active_test_procedure )
22942323 assert_check_result (actual , True )
22952324
22962325
0 commit comments