Projet

Général

Profil

0001-wcs-fix-card-cell-display-when-card-reference-is-not.patch

Lauréline Guérin, 07 janvier 2022 12:02

Télécharger (2,65 ko)

Voir les différences:

Subject: [PATCH] wcs: fix card cell display when card reference is not set
 (#60397)

 combo/apps/wcs/models.py |  2 +-
 tests/test_wcs.py        | 21 +++++++++++++--------
 2 files changed, 14 insertions(+), 9 deletions(-)
combo/apps/wcs/models.py
970 970
        return '%s-card-ids' % self.get_reference()
971 971

  
972 972
    def modify_global_context(self, context, request):
973
        if self.global_context_key not in context:
973
        if self.carddef_reference and self.global_context_key not in context:
974 974
            card_ids = self.get_card_ids(context, request)
975 975
            context[self.global_context_key] = card_ids
976 976

  
tests/test_wcs.py
1835 1835
def test_card_cell_render(mock_send, context, app):
1836 1836
    page = Page.objects.create(title='xxx', template_name='standard')
1837 1837
    cell = WcsCardInfosCell(page=page, placeholder='content', order=0)
1838
    cell.carddef_reference = 'default:card_model_1'
1839 1838
    cell.title_type = 'manual'
1840 1839
    cell.custom_title = 'Foo bar {{ card.fields.title }}'
1841 1840
    cell.save()
1842 1841

  
1842
    # carddef_reference is not defined
1843
    context['card_model_1_id'] = 11
1844
    request = RequestFactory().get('/')
1845
    cell.modify_global_context(context, request)
1846
    context['synchronous'] = True  # to get fresh content
1847

  
1848
    result = cell.render(context)
1849
    assert '<h2>Card Model 1</h2>' not in result
1850
    assert '<p>Unknown Card</p>' in result
1851

  
1843 1852
    # card id not in context
1853
    cell.carddef_reference = 'default:card_model_1'
1854
    cell.save()
1855
    del context['card_model_1_id']
1844 1856
    assert 'card_model_1_id' not in context
1845 1857
    result = cell.render(context)
1846 1858
    assert '<h2>Card Model 1</h2>' in result  # default value
......
1851 1863
    cell.modify_global_context(context, request)
1852 1864
    cell.repeat_index = 0
1853 1865

  
1854
    # query should fail as nothing is cached
1855
    cache.clear()
1856
    with pytest.raises(NothingInCacheException):
1857
        result = cell.render(context)
1858

  
1859
    context['synchronous'] = True  # to get fresh content
1860

  
1861 1866
    with mock.patch('combo.apps.wcs.models.requests.get') as requests_get:
1862 1867
        mock_resp = Response()
1863 1868
        mock_resp.status_code = 500
1864
-