0001-manager-don-t-crash-on-buggy-cells-19503.patch
combo/public/templatetags/combo.py | ||
---|---|---|
88 | 88 |
return cell.render(context) |
89 | 89 |
except NothingInCacheException: |
90 | 90 |
return template.loader.get_template('combo/deferred-cell.html').render(context) |
91 |
except: |
|
92 |
if context.get('placeholder_search_mode'): |
|
93 |
return '' |
|
94 |
raise |
|
91 | 95 | |
92 | 96 |
@register.tag |
93 | 97 |
def skeleton_extra_placeholder(parser, token): |
tests/test_manager.py | ||
---|---|---|
1 | 1 |
import base64 |
2 |
import json |
|
2 | 3 |
import os |
3 | 4 |
import re |
4 | 5 |
import StringIO |
... | ... | |
7 | 8 |
import mock |
8 | 9 | |
9 | 10 |
from django.core.files.storage import default_storage |
11 |
from django.core.urlresolvers import reverse |
|
10 | 12 |
from django.conf import settings |
11 | 13 |
from django.contrib.auth.models import User |
14 |
from django.template import TemplateSyntaxError |
|
12 | 15 |
from django.test import override_settings |
13 | 16 | |
14 | 17 |
import pytest |
... | ... | |
622 | 625 |
cell.save() |
623 | 626 |
resp = app.get('/manage/pages/%s/' % page.id) |
624 | 627 |
assert re.findall('data-placeholder-key="(.*)">', resp.body) == ['content', 'foobar', 'footer'] |
628 | ||
629 |
def test_page_discover_placeholder_with_error_cells(app, admin_user): |
|
630 |
page = Page(title='One', slug='one', template_name='standard') |
|
631 |
page.save() |
|
632 |
cell = JsonCell(page=page, placeholder='content', order=0, url='xx') |
|
633 |
cell.template_string = '{% xxx %}' |
|
634 |
cell.save() |
|
635 | ||
636 |
app = login(app) |
|
637 | ||
638 |
with mock.patch('combo.utils.requests.get') as requests_get: |
|
639 |
data = {'data': [{'url': 'xxx', 'text': 'xxx'}]} |
|
640 |
with pytest.raises(TemplateSyntaxError): |
|
641 |
cell.render({}) |
|
642 | ||
643 |
resp = app.get('/manage/pages/%s/' % page.id) |
|
644 |
assert re.findall('data-placeholder-key="(.*)">', resp.body) == ['content', 'footer'] |
|
625 |
- |