From: Kenneth Reitz Date: Tue, 24 Sep 2013 18:13:28 +0000 (-0400) Subject: merge 2.0 insto master X-Git-Tag: v2.0~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=54ad646067a3e023fd4dcf40c0937ec46069871f;p=services%2Fpython-requests.git merge 2.0 insto master --- 54ad646067a3e023fd4dcf40c0937ec46069871f diff --cc AUTHORS.rst index fb3fcd9,4f77687..43a4e4d --- a/AUTHORS.rst +++ b/AUTHORS.rst @@@ -133,5 -133,4 +133,6 @@@ Patches and Suggestion - Kevin Burke - Flavio Curella - David Pursehouse @dpursehouse -- Marc Schlaich @schlamar +- Jon Parise +- Alexander Karpinsky @homm86 ++- Marc Schlaich @schlamar diff --cc test_requests.py index 714c32b,e20d45a..d1e6ed0 --- a/test_requests.py +++ b/test_requests.py @@@ -645,51 -653,25 +660,69 @@@ class RequestsTestCase(unittest.TestCas r = requests.Request('GET', url).prepare() self.assertEqual(r.url, url) + def test_header_keys_are_native(self): + headers = {u'unicode': 'blah', 'byte'.encode('ascii'): 'blah'} + r = requests.Request('GET', httpbin('get'), headers=headers) + p = r.prepare() + + # This is testing that they are builtin strings. A bit weird, but there + # we go. + self.assertTrue('unicode' in p.headers.keys()) + self.assertTrue('byte' in p.headers.keys()) + + def test_can_send_nonstring_objects_with_files(self): + data = {'a': 0.0} + files = {'b': 'foo'} + r = requests.Request('POST', httpbin('post'), data=data, files=files) + p = r.prepare() + + self.assertTrue('multipart/form-data' in p.headers['Content-Type']) + +class TestContentEncodingDetection(unittest.TestCase): + + def test_none(self): + encodings = requests.utils.get_encodings_from_content('') + self.assertEqual(len(encodings), 0) + + def test_html_charset(self): + """HTML5 meta charset attribute""" + content = '' + encodings = requests.utils.get_encodings_from_content(content) + self.assertEqual(len(encodings), 1) + self.assertEqual(encodings[0], 'UTF-8') + + def test_html4_pragma(self): + """HTML4 pragma directive""" + content = '' + encodings = requests.utils.get_encodings_from_content(content) + self.assertEqual(len(encodings), 1) + self.assertEqual(encodings[0], 'UTF-8') + + def test_xhtml_pragma(self): + """XHTML 1.x served with text/html MIME type""" + content = '' + encodings = requests.utils.get_encodings_from_content(content) + self.assertEqual(len(encodings), 1) + self.assertEqual(encodings[0], 'UTF-8') + + def test_xml(self): + """XHTML 1.x served as XML""" + content = '' + encodings = requests.utils.get_encodings_from_content(content) + self.assertEqual(len(encodings), 1) + self.assertEqual(encodings[0], 'UTF-8') + + def test_precedence(self): + content = ''' + + + + '''.strip() + encodings = requests.utils.get_encodings_from_content(content) + self.assertEqual(encodings, ['HTML5', 'HTML4', 'XML']) + + class TestCaseInsensitiveDict(unittest.TestCase): def test_mapping_init(self):