Thanks!
Now how do I test an action that must use SSL? (I want a 304 bounce
message if the user tries to use plain text.)
I couldn't find a HTTPS or similar header to use...
This looks promising!
class SSLAwareClient(Client):
def __init__(self, *args, **kwargs):
super(SSLAwareClient, self).__init__(*args, **kwargs)
self.ssl = False
def request(self, **request):
path = request.get('PATH_INFO', '/')
if path.startswith('http://'):
self.ssl = False
path = path[path.find('/', 7):]
elif path.startswith('https://'):
self.ssl = True
path = path[path.find('/', 8):]
request['PATH_INFO'] = path
if self.ssl:
request['HTTP_X_FORWARDED_SSL'] = 'on'
ret = super(SSLAwareClient, self).request(**request)
if ret.status_code in (301, 302):
assert request['REQUEST_METHOD'] != 'POST', 'Cannot
redirect posts: %s' % path
if '?' in ret['Location']:
path, querystring = ret['Location'].split('?')
return self.get(path, QUERY_STRING=querystring)
return self.get(ret['Location'])
return ret