mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-26 02:49:16 -04:00
Status code was overcomplex, given how we control the inputs. Now, it expects a single value, rather than a comma separated list, and if you give something it doesn't expect it just returns all. Note, it won't select the correct box - but if you've been manually editing the URL that's your own problem ¯\_(ツ)_/¯ Also, as this page will only ever be shown from the tour (tutorial), it doesn't need some non-help things - such as the download csv button and associated endpoint.
29 lines
886 B
Python
29 lines
886 B
Python
from freezegun import freeze_time
|
|
import pytest
|
|
from werkzeug.datastructures import MultiDict
|
|
|
|
from app.main.views.notifications import get_status_arg
|
|
from app.utils import (
|
|
REQUESTED_STATUSES,
|
|
FAILURE_STATUSES,
|
|
SENDING_STATUSES,
|
|
DELIVERED_STATUSES,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize('multidict_args, expected_statuses', [
|
|
([], REQUESTED_STATUSES),
|
|
([('status', '')], REQUESTED_STATUSES),
|
|
([('status', 'garbage')], REQUESTED_STATUSES),
|
|
([('status', 'sending')], SENDING_STATUSES),
|
|
([('status', 'delivered')], DELIVERED_STATUSES),
|
|
([('status', 'failed')], FAILURE_STATUSES),
|
|
])
|
|
def test_status_filters(mocker, multidict_args, expected_statuses):
|
|
mocker.patch('app.main.views.notifications.current_app')
|
|
|
|
args = MultiDict(multidict_args)
|
|
args['status'] = get_status_arg(args)
|
|
|
|
assert sorted(args['status']) == sorted(expected_statuses)
|