import requests
from requests.auth import HTTPDigestAuth
from requests.adapters import HTTPAdapter
-from requests.compat import str, cookielib, getproxies, urljoin
+from requests.compat import str, cookielib, getproxies, urljoin, urlparse
from requests.cookies import cookiejar_from_dict
from requests.exceptions import InvalidURL, MissingSchema
from requests.structures import CaseInsensitiveDict
def test_mixed_case_scheme_acceptable(self):
s = requests.Session()
s.proxies = getproxies()
- r = requests.Request('GET', 'http://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'HTTP://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'hTTp://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'HttP://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'https://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'HTTPS://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'hTTps://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
- r = requests.Request('GET', 'HttPs://httpbin.org/get')
- r = s.send(r.prepare())
- self.assertEqual(r.status_code,200)
+ parts = urlparse(httpbin('get'))
+ schemes = ['http://', 'HTTP://', 'hTTp://', 'HttP://',
+ 'https://', 'HTTPS://', 'hTTps://', 'HttPs://']
+ for scheme in schemes:
+ url = scheme + parts.netloc + parts.path
+ r = requests.Request('GET', url)
+ r = s.send(r.prepare())
+ self.assertEqual(r.status_code, 200,
+ "failed for scheme %s" % scheme)
def test_HTTP_200_OK_GET_ALTERNATIVE(self):
r = requests.Request('GET', httpbin('get'))