wcs: add filter_by_status filter (#49406)

This commit is contained in:
Lauréline Guérin 2020-12-17 10:11:24 +01:00
parent d074920a9c
commit 4840516b90
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 33 additions and 0 deletions

View File

@ -79,6 +79,12 @@ class LazyCardDefObjectsManager(object):
qs._filters['filter-user-uuid'] = user.get_name_id()
return qs
def filter_by_status(self, status):
qs = self._clone()
if status:
qs._filters['filter'] = status
return qs
def _get_results_from_wcs(self):
service = get_wcs_services().get(self._service_key)
if not service:

View File

@ -48,3 +48,8 @@ def filter_value(queryset, value):
@register.filter
def filter_by_user(queryset, user):
return queryset.filter_by_user(user)
@register.filter
def filter_by_status(queryset, status):
return queryset.filter_by_status(status)

View File

@ -244,3 +244,25 @@ def test_filter_by_user(mock_send, context, nocache):
mock_send.reset_mock()
t.render(context)
assert 'filter-user-uuid=xyz&' in mock_send.call_args_list[0][0][0].url
@mock.patch('combo.apps.wcs.models.requests.send', side_effect=mocked_requests_send)
def test_filter_by_status(mock_send, context, nocache):
t = Template('{% load wcs %}{{ cards|objects:"foo"|list }}')
t.render(context)
assert 'filter=&' not in mock_send.call_args_list[0][0][0].url
mock_send.reset_mock()
t = Template('{% load wcs %}{{ cards|objects:"foo"|filter_by_status:None|list }}')
t.render(context)
assert 'filter=&' not in mock_send.call_args_list[0][0][0].url
mock_send.reset_mock()
t = Template('{% load wcs %}{{ cards|objects:"foo"|filter_by_status:""|list }}')
t.render(context)
assert 'filter=&' not in mock_send.call_args_list[0][0][0].url
mock_send.reset_mock()
t = Template('{% load wcs %}{{ cards|objects:"foo"|filter_by_status:"foobar"|list }}')
t.render(context)
assert 'filter=foobar&' in mock_send.call_args_list[0][0][0].url