From 70211c5650e04a466bb02a6cf55b3248f3a610e4 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Wed, 25 Jun 2014 10:48:02 +0100 Subject: [PATCH] Embeds: Fixed crash when no HTML field is sent back from the embed provider --- wagtail/wagtailembeds/embeds.py | 4 ++++ wagtail/wagtailembeds/tests.py | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/wagtail/wagtailembeds/embeds.py b/wagtail/wagtailembeds/embeds.py index 03029a23b..2ec974d8a 100644 --- a/wagtail/wagtailembeds/embeds.py +++ b/wagtail/wagtailembeds/embeds.py @@ -162,6 +162,10 @@ def get_embed(url, max_width=None, finder=None): except (TypeError, ValueError): embed_dict['height'] = None + # Make sure html field is valid + if 'html' not in embed_dict or not embed_dict['html']: + embed_dict['html'] = '' + # Create database record embed, created = Embed.objects.get_or_create( url=url, diff --git a/wagtail/wagtailembeds/tests.py b/wagtail/wagtailembeds/tests.py index 892dde5bd..09ad3c902 100644 --- a/wagtail/wagtailembeds/tests.py +++ b/wagtail/wagtailembeds/tests.py @@ -79,6 +79,19 @@ class TestEmbeds(TestCase): # Width must be set to None self.assertEqual(embed.width, None) + def test_no_html(self) : + def no_html_finder(url, max_width=None): + """ + A finder which returns everything but HTML + """ + embed = self.dummy_finder(url, max_width) + embed['html'] = None + return embed + + embed = get_embed('www.test.com/1234', max_width=400, finder=no_html_finder) + + self.assertEqual(embed.html, '') + class TestChooser(TestCase, WagtailTestUtils): def setUp(self):