0001-wcs-fix-card-cell-display-when-card-reference-is-not.patch
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 |
- |