feat: explain RTC blockers when no R3 candidates are eligible
This commit is contained in:
@@ -5,7 +5,7 @@ from sqlalchemy.dialects import postgresql
|
||||
|
||||
from central.app.audit import record_audit
|
||||
from central.app.blocked_products import upsert_blocker
|
||||
from central.app.control_plane import _blocker_breakdown_query, blocker_filter_summary, dashboard_summary, jobs_status_summary, list_blockers, list_installations, list_jobs
|
||||
from central.app.control_plane import _blocker_breakdown_query, blocker_filter_summary, dashboard_summary, jobs_status_summary, list_blockers, list_installations, list_jobs, rtc_blocker_summary
|
||||
from central.app.config import settings
|
||||
from central.app.events import record_event
|
||||
from central.app.models import Agent, AgentEnrollment, AgentRelease, AgentSnapshot, AuditEvent, BlockedProduct, Installation, Job, Tenant
|
||||
@@ -238,6 +238,28 @@ def test_jobs_status_kpis_count_active_jobs_by_status_in_one_group():
|
||||
assert jobs_status_summary(session, scope="all")["FAILED"] == 2
|
||||
|
||||
|
||||
def test_rtc_blocker_summary_counts_products_and_simple_reason_server_side():
|
||||
factory = setup_db()
|
||||
with factory() as session:
|
||||
_, agent, installation, _ = _installation(session, 1)
|
||||
for index in range(521):
|
||||
session.add(BlockedProduct(
|
||||
tenant_id=installation.tenant_id, installation_id=installation.id, company="Client 1",
|
||||
product_code=f"RTC-{index:04d}", description="RTC item", blocker_type="BLOCKED_FISCAL_DATA",
|
||||
field="RTC", reason_code="CCLASSTRIB_MISSING_UNRESOLVED",
|
||||
evidence_summary={"reason": "RTC-R1:SIMPLES_ORIENTATION_PENDING_OFFICIAL_NT"},
|
||||
input_fingerprint=f"rtc-{index}", blocker_fingerprint=f"rtc-blocker-{index}",
|
||||
first_seen_at=NOW, last_seen_at=NOW,
|
||||
))
|
||||
session.commit()
|
||||
|
||||
summary = rtc_blocker_summary(session, agent.id)
|
||||
|
||||
assert summary["open_blockers"] == 521
|
||||
assert summary["products_affected"] == 521
|
||||
assert summary["reason_counts"] == {"RTC-R1:SIMPLES_ORIENTATION_PENDING_OFFICIAL_NT": 521}
|
||||
|
||||
|
||||
def test_attention_groups_rank_high_priority_before_limiting_recent_low_priority():
|
||||
factory = setup_db()
|
||||
with factory() as session:
|
||||
|
||||
Reference in New Issue
Block a user