_handlers.append(self.auth.handler)
- if _handlers:
- _handlers.extend(get_handlers())
- opener = urllib2.build_opener(*_handlers)
- return opener.open
- else:
+ if not _handlers:
return urllib2.urlopen
+ _handlers.extend(get_handlers())
+ opener = urllib2.build_opener(*_handlers)
+
+ if self.headers:
+ # Allow default headers in the opener to be overloaded
+ normal_keys = [k.capitalize() for k in self.headers]
+ for key, val in opener.addheaders[:]:
+ if key not in normal_keys:
+ continue
+ # Remove it, we have a value to take its place
+ opener.addheaders.remove((key, val))
+
+ return opener.open
def _build_response(self, resp):
"""Build internal Response object from given response."""
self.assertEqual(r.status_code, 200)
def test_HTTP_200_OK_GET_WITH_PARAMS(self):
-
heads = {'User-agent': 'Mozilla/5.0'}
r = requests.get('http://www.google.com/search', params={'q': 'test'}, headers=heads)
self.assertEqual(r.status_code, 200)
-
def test_HTTP_200_OK_GET_WITH_MIXED_PARAMS(self):
-
heads = {'User-agent': 'Mozilla/5.0'}
r = requests.get('http://google.com/search?test=true', params={'q': 'test'}, headers=heads)
self.assertEqual(r.status_code, 200)
+
+ def test_user_agent_transfers(self):
+ """Issue XX"""
+ heads = {'User-agent':
+ 'Mozilla/5.0 (github.com/kennethreitz/requests)'}
+
+ r = requests.get('http://whatsmyua.com', headers=heads);
+ self.assertTrue(heads['User-agent'] in r.content)
def test_HTTP_200_OK_HEAD(self):
r = requests.head('http://google.com')
requests.auth_manager.empty()
def test_POSTBIN_GET_POST_FILES(self):
-
bin = requests.post('http://www.postbin.org/')
print bin.url
self.assertEqual(bin.status_code, 200)
self.assertEqual(post2.status_code, 201)
def test_POSTBIN_GET_POST_FILES_WITH_PARAMS(self):
-
bin = requests.post('http://www.postbin.org/')
self.assertEqual(bin.status_code, 200)
def test_POSTBIN_GET_POST_FILES_WITH_HEADERS(self):
-
bin = requests.post('http://www.postbin.org/')
self.assertEqual(bin.status_code, 200)