fix(campaign): suppress overlapping aggregate cells
This commit is contained in:
@@ -141,6 +141,39 @@ def test_small_cells_use_primary_and_complementary_suppression() -> None:
|
||||
assert report.privacy.suppression_applied is True
|
||||
|
||||
|
||||
def test_outcome_suppression_also_hides_overlapping_population_count() -> None:
|
||||
jobs = [
|
||||
*[
|
||||
_job(
|
||||
index,
|
||||
"smtp_accepted",
|
||||
validation_status="blocked" if index < 4 else "ready",
|
||||
)
|
||||
for index in range(8)
|
||||
],
|
||||
_job(8, "skipped", validation_status="excluded"),
|
||||
]
|
||||
|
||||
report = build_aggregate_campaign_report(
|
||||
campaign=_campaign(), # type: ignore[arg-type]
|
||||
version=_version(inactive_count=5), # type: ignore[arg-type]
|
||||
jobs=jobs, # type: ignore[arg-type]
|
||||
policy=_policy(5),
|
||||
)
|
||||
|
||||
assert report.outcomes.excluded.suppressed is True
|
||||
assert report.population.excluded_or_blocked_jobs.model_dump() == {
|
||||
"value": None,
|
||||
"suppressed": True,
|
||||
}
|
||||
# Source entries without jobs are outside the outcome denominator and do
|
||||
# not overlap the suppressed partition, so their threshold-safe count stays visible.
|
||||
assert report.population.inactive_source_entries.model_dump() == {
|
||||
"value": 5,
|
||||
"suppressed": False,
|
||||
}
|
||||
|
||||
|
||||
def test_all_small_cells_also_suppress_the_denominator_and_state() -> None:
|
||||
jobs = [_job(0, "smtp_accepted"), _job(1, "failed_permanent")]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user