Fix empty table message

Bug was happening because:

```python
bool(list())
>>> False
```

```python
bool((item for item in list()))
>>> True
```

i.e. generator expressions cast to boolean are `True`, even if they’re
empty – Python doesn’t evaluate them.

This was causing the functional tests to fail because it was taking too
long for any table rows to appear on the page.
This commit is contained in:
Chris Hill-Scott
2017-06-23 13:33:58 +01:00
parent 17f729f816
commit cde7d781d5
3 changed files with 23 additions and 3 deletions

View File

@@ -386,7 +386,7 @@ def get_job_partials(job):
def add_preview_of_content_to_notifications(notifications):
return (
return [
dict(
preview_of_content=(
str(Template(notification['template'], notification['personalisation']))
@@ -396,4 +396,4 @@ def add_preview_of_content_to_notifications(notifications):
**notification
)
for notification in notifications
)
]

View File

@@ -9,6 +9,7 @@ from bs4 import BeautifulSoup
from app.main.views.jobs import get_time_left, get_status_filters
from tests import notification_json
from tests.conftest import SERVICE_ONE_ID
from tests.app.test_utils import normalize_spaces
from freezegun import freeze_time
@@ -135,6 +136,23 @@ def test_can_show_notifications(
assert json_content.keys() == {'counts', 'notifications'}
def test_shows_message_when_no_notifications(
client_request,
mock_get_detailed_service,
mock_get_notifications_with_no_notifications,
):
page = client_request.get(
'main.view_notifications',
service_id=SERVICE_ONE_ID,
message_type='sms',
)
assert normalize_spaces(page.select('tbody tr')[0].text) == (
'No messages found'
)
@pytest.mark.parametrize((
'initial_query_arguments,'
'form_post_data,'

View File

@@ -1128,7 +1128,9 @@ def mock_get_notifications_with_no_notifications(mocker):
status=None,
limit_days=None,
include_jobs=None,
include_from_test_key=None):
include_from_test_key=None,
to=None,
):
return notification_json(service_id, rows=0)
return mocker.patch(