Include test key data by default on platform admin

This is the existing behaviour. It’s broken by this issue in WTForms
2.2.1: https://github.com/wtforms/wtforms/issues/401

This commit hand-crafts the default value, because WTForms is ignoring
the `default` argument on the form object attribute.

Not really sure how this ever worked 🤔
This commit is contained in:
Chris Hill-Scott
2018-08-03 14:30:34 +01:00
parent 0d2de75e84
commit 55054b81b5
2 changed files with 20 additions and 8 deletions

View File

@@ -138,6 +138,14 @@ def make_columns(global_stats, complaints_number):
@user_is_platform_admin
def platform_admin_services():
form = DateFilterForm(request.args)
if all((
request.args.get('include_from_test_key') is None,
request.args.get('start_date') is None,
request.args.get('end_date') is None,
)):
# Default to True if the user hasnt done any filtering,
# otherwise respect their choice
form.include_from_test_key.data = True
api_args = {'detailed': True,
'only_active': False, # specifically DO get inactive services
'include_from_test_key': form.include_from_test_key.data,

View File

@@ -1,6 +1,7 @@
import datetime
import re
import uuid
from functools import partial
from unittest.mock import ANY
import pytest
@@ -114,12 +115,13 @@ def test_should_render_platform_admin_page(
'main.live_services',
'main.trial_services',
])
@pytest.mark.parametrize('include_from_test_key, inc', [
("Y", True),
("N", False)
@pytest.mark.parametrize('partial_url_for, inc', [
(partial(url_for), True),
(partial(url_for, include_from_test_key='y', start_date='', end_date=''), True),
(partial(url_for, start_date='', end_date=''), False),
])
def test_live_trial_services_toggle_including_from_test_key(
include_from_test_key,
partial_url_for,
client,
platform_admin_user,
mocker,
@@ -129,12 +131,14 @@ def test_live_trial_services_toggle_including_from_test_key(
):
mock_get_user(mocker, user=platform_admin_user)
client.login(platform_admin_user)
response = client.get(url_for(endpoint, include_from_test_key=include_from_test_key))
response = client.get(partial_url_for(endpoint))
assert response.status_code == 200
mock_get_detailed_services.assert_called_once_with({'detailed': True,
'only_active': False,
'include_from_test_key': inc})
mock_get_detailed_services.assert_called_once_with({
'detailed': True,
'only_active': False,
'include_from_test_key': inc,
})
@pytest.mark.parametrize('endpoint', [