manager: don't crash on buggy cells (#19503)
This commit is contained in:
parent
4036804500
commit
8bf25cfabd
|
@ -88,6 +88,10 @@ def render_cell(context, cell):
|
|||
return cell.render(context)
|
||||
except NothingInCacheException:
|
||||
return template.loader.get_template('combo/deferred-cell.html').render(context)
|
||||
except:
|
||||
if context.get('placeholder_search_mode'):
|
||||
return ''
|
||||
raise
|
||||
|
||||
@register.tag
|
||||
def skeleton_extra_placeholder(parser, token):
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import base64
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import StringIO
|
||||
|
@ -7,8 +8,10 @@ import urllib
|
|||
import mock
|
||||
|
||||
from django.core.files.storage import default_storage
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.template import TemplateSyntaxError
|
||||
from django.test import override_settings
|
||||
|
||||
import pytest
|
||||
|
@ -622,3 +625,20 @@ def test_page_cell_placeholder(app, admin_user):
|
|||
cell.save()
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert re.findall('data-placeholder-key="(.*)">', resp.body) == ['content', 'foobar', 'footer']
|
||||
|
||||
def test_page_discover_placeholder_with_error_cells(app, admin_user):
|
||||
page = Page(title='One', slug='one', template_name='standard')
|
||||
page.save()
|
||||
cell = JsonCell(page=page, placeholder='content', order=0, url='xx')
|
||||
cell.template_string = '{% xxx %}'
|
||||
cell.save()
|
||||
|
||||
app = login(app)
|
||||
|
||||
with mock.patch('combo.utils.requests.get') as requests_get:
|
||||
data = {'data': [{'url': 'xxx', 'text': 'xxx'}]}
|
||||
with pytest.raises(TemplateSyntaxError):
|
||||
cell.render({})
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert re.findall('data-placeholder-key="(.*)">', resp.body) == ['content', 'footer']
|
||||
|
|
Loading…
Reference in New Issue