Projet

Général

Profil

0001-wcs-add-filter_by_number-filter-58782.patch

Lauréline Guérin, 13 janvier 2022 15:24

Télécharger (3,02 ko)

Voir les différences:

Subject: [PATCH] wcs: add |filter_by_number filter (#58782)

 combo/apps/wcs/context_processors.py |  6 ++++++
 combo/apps/wcs/templatetags/wcs.py   |  5 +++++
 tests/test_wcs_templatetags.py       | 22 ++++++++++++++++++++++
 3 files changed, 33 insertions(+)
combo/apps/wcs/context_processors.py
92 92
            qs._filters['filter-internal-id'] = internal_id
93 93
        return qs
94 94

  
95
    def filter_by_number(self, number):
96
        qs = self._clone()
97
        if number:
98
            qs._filters['filter-number'] = number
99
        return qs
100

  
95 101
    def filter_by_user(self, user):
96 102
        qs = self._clone()
97 103
        if user and user.is_authenticated and user.get_name_id():
combo/apps/wcs/templatetags/wcs.py
67 67
    return queryset.filter_by_internal_id(internal_id)
68 68

  
69 69

  
70
@register.filter
71
def filter_by_number(queryset, number):
72
    return queryset.filter_by_number(number)
73

  
74

  
70 75
@register.filter
71 76
def filter_by_user(queryset, user):
72 77
    return queryset.filter_by_user(user)
tests/test_wcs_templatetags.py
289 289
    assert 'filter-internal-id=42&' in mock_send.call_args_list[0][0][0].url
290 290

  
291 291

  
292
@mock.patch('combo.apps.wcs.models.requests.send', side_effect=mocked_requests_send)
293
def test_filter_by_number(mock_send, context, nocache):
294
    t = Template('{{ cards|objects:"foo"|list }}')
295
    t.render(context)
296
    assert 'filter-number' not in mock_send.call_args_list[0][0][0].url
297

  
298
    mock_send.reset_mock()
299
    t = Template('{{ cards|objects:"foo"|filter_by_number:None|list }}')
300
    t.render(context)
301
    assert 'filter-number' not in mock_send.call_args_list[0][0][0].url
302

  
303
    mock_send.reset_mock()
304
    t = Template('{{ cards|objects:"foo"|filter_by_number:""|list }}')
305
    t.render(context)
306
    assert 'filter-number' not in mock_send.call_args_list[0][0][0].url
307

  
308
    mock_send.reset_mock()
309
    t = Template('{{ cards|objects:"foo"|filter_by_number:"42-35"|list }}')
310
    t.render(context)
311
    assert 'filter-number=42-35&' in mock_send.call_args_list[0][0][0].url
312

  
313

  
292 314
@mock.patch('combo.apps.wcs.models.requests.send', side_effect=mocked_requests_send)
293 315
def test_filter_by_user(mock_send, context, nocache):
294 316
    t = Template('{{ cards|objects:"foo"|filter_by_user:request.user|list }}')
295
-