##// END OF EJS Templates
handle case-insensitivity
Michael Penkov -
Show More
@@ -667,7 +667,19 b' class Pretty(TextDisplayObject):'
667 667 class HTML(TextDisplayObject):
668 668
669 669 def __init__(self, data=None, url=None, filename=None, metadata=None):
670 if data and data.startswith("<iframe ") and data.endswith("</iframe>"):
670 def warn():
671 if not data:
672 return False
673
674 #
675 # Avoid calling lower() on the entire data, because it could be a
676 # long string and we're only interested in its beginning and end.
677 #
678 prefix = data[:10].lower()
679 suffix = data[-10:].lower()
680 return prefix.startswith("<iframe ") and suffix.endswith("</iframe>")
681
682 if warn():
671 683 warnings.warn("Consider using IPython.display.IFrame instead")
672 684 super(HTML, self).__init__(data=data, url=url, filename=filename, metadata=metadata)
673 685
@@ -197,6 +197,9 b' def test_displayobject_repr():'
197 197
198 198 @mock.patch('warnings.warn')
199 199 def test_encourage_iframe_over_html(m_warn):
200 display.HTML()
201 m_warn.assert_not_called()
202
200 203 display.HTML('<br />')
201 204 m_warn.assert_not_called()
202 205
@@ -206,6 +209,10 b' def test_encourage_iframe_over_html(m_warn):'
206 209 display.HTML('<iframe src="http://a.com"></iframe>')
207 210 m_warn.assert_called_with('Consider using IPython.display.IFrame instead')
208 211
212 m_warn.reset_mock()
213 display.HTML('<IFRAME SRC="http://a.com"></IFRAME>')
214 m_warn.assert_called_with('Consider using IPython.display.IFrame instead')
215
209 216 def test_progress():
210 217 p = display.ProgressBar(10)
211 218 nt.assert_in('0/10',repr(p))
General Comments 0
You need to be logged in to leave comments. Login now