コード例 #1
0
ファイル: requests.py プロジェクト: taleinat/htmldammit
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
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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)