| 
9 | 9 | 
 
  | 
10 | 10 | from controller.sentry.admin import AppAdmin  | 
11 | 11 | from controller.sentry.choices import EventType  | 
 | 12 | +from controller.sentry.filters import IsSpammingListFilter  | 
12 | 13 | from controller.sentry.forms import BumpForm, MetricForm  | 
13 | 14 | from controller.sentry.inlines import AppEventInline, ProjectEventInline  | 
14 | 15 | from controller.sentry.models import App, Event, Project  | 
@@ -456,3 +457,39 @@ def test_project_chart(super_call: Mock, admin_with_user):  | 
456 | 457 |     super_call.assert_called_once_with(request, project.sentry_id, "", None)  | 
457 | 458 | 
 
  | 
458 | 459 |     assert response.context_data == expected_context  | 
 | 460 | + | 
 | 461 | + | 
 | 462 | +@pytest.mark.parametrize("user_group", ["Developer"])  | 
 | 463 | +@pytest.mark.admin_site(model_class=App)  | 
 | 464 | +def test_app_filter(admin_with_user):  | 
 | 465 | +    site, request = admin_with_user  | 
 | 466 | + | 
 | 467 | +    project = Project.objects.create(sentry_id="123")  | 
 | 468 | +    event = Event.objects.create(project=project, type=EventType.DISCARD, timestamp=timezone.now())  | 
 | 469 | +    project.last_event = event  | 
 | 470 | +    project.save()  | 
 | 471 | +    app_discard = App.objects.create(reference="app_discard", project=project)  | 
 | 472 | + | 
 | 473 | +    project = Project.objects.create(sentry_id="456")  | 
 | 474 | +    event = Event.objects.create(project=project, type=EventType.FIRING, timestamp=timezone.now())  | 
 | 475 | +    project.last_event = event  | 
 | 476 | +    project.save()  | 
 | 477 | +    app_firing = App.objects.create(reference="app_firing", project=project)  | 
 | 478 | + | 
 | 479 | +    App.objects.create(reference="app_without")  | 
 | 480 | + | 
 | 481 | +    filter_yes = IsSpammingListFilter(None, {"spamming": "yes"}, App, site)  | 
 | 482 | +    filter_no = IsSpammingListFilter(None, {"spamming": "no"}, App, site)  | 
 | 483 | +    filter_none = IsSpammingListFilter(None, {}, App, site)  | 
 | 484 | + | 
 | 485 | +    assert filter_yes.lookups(request, site) == (("yes", "Yes"), ("no", "No"))  | 
 | 486 | + | 
 | 487 | +    assert list(filter_yes.queryset(request, App.objects.all())) == list(  | 
 | 488 | +        App.objects.filter(reference=app_discard.reference)  | 
 | 489 | +    )  | 
 | 490 | + | 
 | 491 | +    assert list(filter_no.queryset(request, App.objects.all())) == list(  | 
 | 492 | +        App.objects.filter(reference=app_firing.reference)  | 
 | 493 | +    )  | 
 | 494 | + | 
 | 495 | +    assert list(filter_none.queryset(request, App.objects.all())) == list(App.objects.all())  | 
0 commit comments