diff --git a/wagtail/wagtailcore/templatetags/wagtailcore_tags.py b/wagtail/wagtailcore/templatetags/wagtailcore_tags.py index b68a66d63..c3b660a16 100644 --- a/wagtail/wagtailcore/templatetags/wagtailcore_tags.py +++ b/wagtail/wagtailcore/templatetags/wagtailcore_tags.py @@ -35,4 +35,6 @@ def wagtail_version(): @register.filter def richtext(value): - return mark_safe('
' + expand_db_html(value) + '
') + if value: + return mark_safe('
' + expand_db_html(value) + '
') + return '' diff --git a/wagtail/wagtailcore/tests/tests.py b/wagtail/wagtailcore/tests/tests.py index 7cc1509cd..8759b9f34 100644 --- a/wagtail/wagtailcore/tests/tests.py +++ b/wagtail/wagtailcore/tests/tests.py @@ -2,6 +2,7 @@ from django.test import TestCase from django.core.cache import cache from wagtail.wagtailcore.models import Page, Site +from wagtail.wagtailcore.templatetags.wagtailcore_tags import richtext from wagtail.tests.models import SimplePage @@ -142,3 +143,16 @@ class TestSiteRootPathsCache(TestCase): # Check url self.assertEqual(homepage.url, '/') + + +class TestRichtextTag(TestCase): + + def test_typeerror(self): + """`richtext` fails when it's called with `value` being not a string + or buffer. + """ + value = None + + result = richtext(value) + + self.assertEqual(result, '')