forked from MirrorHub/synapse
Do not raise a 500 exception when previewing empty media. (#8883)
This commit is contained in:
parent
92d87c6882
commit
1f3748f033
3 changed files with 22 additions and 12 deletions
1
changelog.d/8883.bugfix
Normal file
1
changelog.d/8883.bugfix
Normal file
|
@ -0,0 +1 @@
|
|||
Fix a 500 error when attempting to preview an empty HTML file.
|
|
@ -676,7 +676,11 @@ class PreviewUrlResource(DirectServeJsonResource):
|
|||
logger.debug("No media removed from url cache")
|
||||
|
||||
|
||||
def decode_and_calc_og(body, media_uri, request_encoding=None):
|
||||
def decode_and_calc_og(body, media_uri, request_encoding=None) -> Dict[str, str]:
|
||||
# If there's no body, nothing useful is going to be found.
|
||||
if not body:
|
||||
return {}
|
||||
|
||||
from lxml import etree
|
||||
|
||||
try:
|
||||
|
|
|
@ -56,7 +56,7 @@ class PreviewTestCase(unittest.TestCase):
|
|||
|
||||
desc = summarize_paragraphs(example_paras, min_size=200, max_size=500)
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
desc,
|
||||
"Tromsø (Norwegian pronunciation: [ˈtrʊmsœ] ( listen); Northern Sami:"
|
||||
" Romsa; Finnish: Tromssa[2] Kven: Tromssa) is a city and municipality in"
|
||||
|
@ -69,7 +69,7 @@ class PreviewTestCase(unittest.TestCase):
|
|||
|
||||
desc = summarize_paragraphs(example_paras[1:], min_size=200, max_size=500)
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
desc,
|
||||
"Tromsø lies in Northern Norway. The municipality has a population of"
|
||||
" (2015) 72,066, but with an annual influx of students it has over 75,000"
|
||||
|
@ -96,7 +96,7 @@ class PreviewTestCase(unittest.TestCase):
|
|||
|
||||
desc = summarize_paragraphs(example_paras, min_size=200, max_size=500)
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
desc,
|
||||
"Tromsø (Norwegian pronunciation: [ˈtrʊmsœ] ( listen); Northern Sami:"
|
||||
" Romsa; Finnish: Tromssa[2] Kven: Tromssa) is a city and municipality in"
|
||||
|
@ -122,7 +122,7 @@ class PreviewTestCase(unittest.TestCase):
|
|||
]
|
||||
|
||||
desc = summarize_paragraphs(example_paras, min_size=200, max_size=500)
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
desc,
|
||||
"Tromsø (Norwegian pronunciation: [ˈtrʊmsœ] ( listen); Northern Sami:"
|
||||
" Romsa; Finnish: Tromssa[2] Kven: Tromssa) is a city and municipality in"
|
||||
|
@ -149,7 +149,7 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(og, {"og:title": "Foo", "og:description": "Some text."})
|
||||
self.assertEqual(og, {"og:title": "Foo", "og:description": "Some text."})
|
||||
|
||||
def test_comment(self):
|
||||
html = """
|
||||
|
@ -164,7 +164,7 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(og, {"og:title": "Foo", "og:description": "Some text."})
|
||||
self.assertEqual(og, {"og:title": "Foo", "og:description": "Some text."})
|
||||
|
||||
def test_comment2(self):
|
||||
html = """
|
||||
|
@ -182,7 +182,7 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
og,
|
||||
{
|
||||
"og:title": "Foo",
|
||||
|
@ -203,7 +203,7 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(og, {"og:title": "Foo", "og:description": "Some text."})
|
||||
self.assertEqual(og, {"og:title": "Foo", "og:description": "Some text."})
|
||||
|
||||
def test_missing_title(self):
|
||||
html = """
|
||||
|
@ -216,7 +216,7 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(og, {"og:title": None, "og:description": "Some text."})
|
||||
self.assertEqual(og, {"og:title": None, "og:description": "Some text."})
|
||||
|
||||
def test_h1_as_title(self):
|
||||
html = """
|
||||
|
@ -230,7 +230,7 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(og, {"og:title": "Title", "og:description": "Some text."})
|
||||
self.assertEqual(og, {"og:title": "Title", "og:description": "Some text."})
|
||||
|
||||
def test_missing_title_and_broken_h1(self):
|
||||
html = """
|
||||
|
@ -244,4 +244,9 @@ class PreviewUrlTestCase(unittest.TestCase):
|
|||
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
|
||||
self.assertEquals(og, {"og:title": None, "og:description": "Some text."})
|
||||
self.assertEqual(og, {"og:title": None, "og:description": "Some text."})
|
||||
|
||||
def test_empty(self):
|
||||
html = ""
|
||||
og = decode_and_calc_og(html, "http://example.com/test.html")
|
||||
self.assertEqual(og, {})
|
||||
|
|
Loading…
Reference in a new issue