def request_hook(response, **kwargs): stream = kwargs.get('stream', False) if stream: return ud = make_UnicodeDammit(response.content, response.headers) response.encoding = ud.original_encoding response._content = ud.detector.markup return response
def test_text_plain_header(self): raw_html = b'BLA' http_headers = {'Content-Type': 'text/plain'} with mock.patch('htmldammit.core.UnicodeDammit', MockUnicodeDammit): ud = make_UnicodeDammit(raw_html, http_headers) self.assertEqual(raw_html, ud.raw_html) self.assertEqual(False, ud.is_html) self.assertEqual([], ud.override_encodings)
def test_html_header_with_charset(self): for encoding in ['utf-8', 'utf-16', 'iso-8859-1', 'windows-1252']: raw_html = b'BLA' http_headers = {'Content-Type': 'text/html; charset={charset}'.format(charset=encoding)} with mock.patch('htmldammit.core.UnicodeDammit', MockUnicodeDammit): ud = make_UnicodeDammit(raw_html, http_headers) self.assertEqual(raw_html, ud.raw_html) self.assertEqual(True, ud.is_html) self.assertEqual([encoding], ud.override_encodings)
def test_no_header(self): "Test without any Content-Type declaration, with ASCII-only HTML." raw_html = b'BLA' http_headers = {} # with mock.patch('htmldammit.UnicodeDammit', autospec=True) as mock_ud: # make_UnicodeDammit(raw_html, http_headers) # # mock_ud.assert_called_with(raw_html, is_html=True, # override_encodings=[], # smart_quotes_to='auto') ud = make_UnicodeDammit(raw_html, http_headers) self.assertEqual(raw_html, ud.unicode_markup.encode(ud.original_encoding)) self.assertEqual(False, ud.is_html)