23 lines
1.1 KiB
Python
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)
|