@@ -64,6 +64,11 @@ async def after_scan_1(self):
6464 assert result ["risk" ] is None
6565 assert result ["risk_override" ] == False
6666
67+ # override risk on www2 BEFORE scan 2 (which will add CRITICAL findings)
68+ result = await self .bbot_server .set_risk (host = "www2.evilcorp.com" , risk = 2.0 )
69+ assert result ["risk" ] == 2.0
70+ assert result ["risk_override" ] == True
71+
6772 async def after_scan_2 (self ):
6873 findings = [f async for f in self .bbot_server .list_findings ()]
6974 assert len (findings ) == 4
@@ -194,18 +199,28 @@ async def after_scan_2(self):
194199
195200 # --- risk field tests ---
196201
197- # after scan 2, www2 and api have CRITICAL findings → CVSS 9.0
202+ # www2 had risk overridden to 2.0 before scan 2 (set in after_scan_1)
203+ # scan 2 added CRITICAL findings to www2, but risk should still be 2.0 because of the override
198204 www2_asset = await self .bbot_server .get_asset (host = "www2.evilcorp.com" )
199- assert www2_asset .risk == 9.0
200- assert www2_asset .risk_override == False
205+ assert www2_asset .risk == 2.0 , f"risk should still be 2.0 (overridden), got { www2_asset . risk } "
206+ assert www2_asset .risk_override == True
201207 api_asset = await self .bbot_server .get_asset (host = "api.evilcorp.com" )
202208 assert api_asset .risk == 9.0
203209 assert api_asset .risk_override == False
210+
204211 # www only had HIGH findings from scan 1 → CVSS 7.0
205212 www_asset = await self .bbot_server .get_asset (host = "www.evilcorp.com" )
206213 assert www_asset .risk == 7.0
207214 assert www_asset .risk_override == False
208215
216+ # clear the override on www2 — risk should revert to CVSS-derived value (CRITICAL → 9.0)
217+ result = await self .bbot_server .set_risk (host = "www2.evilcorp.com" )
218+ assert result ["risk" ] == 9.0 , f"Expected risk to revert to 9.0, got { result ['risk' ]} "
219+ assert result ["risk_override" ] == False
220+ www2_asset = await self .bbot_server .get_asset (host = "www2.evilcorp.com" )
221+ assert www2_asset .risk == 9.0
222+ assert www2_asset .risk_override == False
223+
209224 # manually set risk on www2 (float 0.0-10.0)
210225 result = await self .bbot_server .set_risk (host = "www2.evilcorp.com" , risk = 7.5 )
211226 assert result ["risk" ] == 7.5
@@ -246,8 +261,10 @@ async def after_scan_2(self):
246261 # verify RISK_UPDATED activities were emitted
247262 # expected: 2 from scan 1 auto-sync (www + www2: None->7.0),
248263 # 4 from after_scan_1 manual set_risk (api: set 5.0, clear, set None, clear),
249- # 2 from scan 2 auto-sync (www2: 7.0->9.0, api: None->9.0),
264+ # 1 from after_scan_1 override on www2 (7.0->2.0),
265+ # 1 from scan 2 auto-sync (api: None->9.0),
266+ # 1 from after_scan_2 clear override on www2 (2.0->9.0),
250267 # 6 from after_scan_2 manual set_risk (7.5, 3.1, 0.0, 10.0, None, clear)
251268 await asyncio .sleep (1.0 )
252269 activities = [a async for a in self .bbot_server .list_activities () if a .type == "RISK_UPDATED" ]
253- assert len (activities ) == 14
270+ assert len (activities ) == 15
0 commit comments