Files
bludit-secure/tests/http_helpers.py
T

23 lines
1.1 KiB
Python

import os,urllib.request,urllib.parse,urllib.error,http.cookies,re,json,subprocess
BASE=os.environ.get('TEST_BASE', 'http://127.0.0.1:18765')
PHP=os.environ['TEST_PHP']
INI=os.environ['TEST_PHP_INI']
PLUGIN=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
FIXTURE=os.environ['TEST_BLUDIT']
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self,*args): return None
opener=urllib.request.build_opener(NoRedirect)
cookies={}
def req(path='/admin/',data=None):
headers={'User-Agent':'BluditSecureTest','Cookie':'; '.join(k+'='+v for k,v in cookies.items())}
q=urllib.request.Request(BASE+path,data=urllib.parse.urlencode(data).encode() if data is not None else None,headers=headers)
try:r=opener.open(q)
except urllib.error.HTTPError as e:r=e
for val in r.headers.get_all('Set-Cookie',[]):
c=http.cookies.SimpleCookie();c.load(val)
for k,v in c.items():cookies[k]=v.value
return r.status,r.read().decode(),r.headers
def csrf(body):return re.search(r'name="secureCsrf" value="([^"]+)"',body)[1]
def check(v,label):assert v,label;print('OK',label)