
+ Adding some more invite status checks + Adding a verbose invite usage check for sanity reasons - Removing run-api-tests script as it now goes into the /scripts/ directory + Adding the wss-hmac setup from the command line arg It was literally just 1 if statement that I forgot to write in
79 lines
2.5 KiB
Python
79 lines
2.5 KiB
Python
from requests import Session
|
|
import requests
|
|
|
|
NC = '\033[0m'
|
|
RED = '\033[1;31m'
|
|
GREEN = '\033[1;32m'
|
|
|
|
class Request:
|
|
|
|
def __init__(self, url: str, method: str, qs: dict, headers: dict, hope: int, body=None, verbose=False):
|
|
self.method = method
|
|
self.url = url
|
|
# query string parameters are appended to the url which is why we do this
|
|
self.qs = qs
|
|
self.headers = headers
|
|
self.body = body
|
|
|
|
self.response = None
|
|
self.hope = hope
|
|
# This flag lets us control how much output we want to see
|
|
self.verbose = verbose
|
|
|
|
|
|
@property
|
|
def passing(self):
|
|
if self.response is None:
|
|
return False
|
|
else:
|
|
return self.response.status_code == self.hope
|
|
|
|
def fire(self) -> requests.Response:
|
|
try:
|
|
if self.method == 'get':
|
|
self.response = requests.get(self.url, headers=self.headers, params=self.qs)
|
|
elif self.method == 'post':
|
|
self.response = requests.post(self.url, headers=self.headers, params=self.qs, data=self.body)
|
|
elif self.method == 'delete':
|
|
self.response = requests.delete(self.url, headers=self.headers, params=self.qs)
|
|
|
|
return self.response
|
|
except Exception as e:
|
|
print(e)
|
|
return None
|
|
|
|
|
|
|
|
def show_response(self):
|
|
if self.response is None:
|
|
print('Response := None')
|
|
return
|
|
|
|
real_code = self.response.status_code
|
|
if self.hope != real_code:
|
|
abstract = RED + 'Fail ' + NC + 'Expected ' + str(self.hope) + ' Got ' + str(real_code)
|
|
|
|
print(abstract)
|
|
print('\t', self.method, ' ', self.url)
|
|
if len(self.headers) != 0:
|
|
print('\tRequest-Headers ', self.headers)
|
|
|
|
if len(self.qs) != 0:
|
|
print('\tQuery-Dictionary ', self.qs)
|
|
|
|
if self.body is not None:
|
|
print('\tRequest-Body ', str(self.body))
|
|
|
|
if self.verbose:
|
|
print(f'\tResponse-Status {self.response.status_code}')
|
|
print(f'\tResponse-Headers {self.response.headers}')
|
|
print(f'\tResponse-Text {self.response.text}')
|
|
|
|
else:
|
|
print(f'{GREEN}Pass{NC} {self.method} {self.url}')
|
|
if self.verbose:
|
|
print(f'\tResponse-Status {self.response.status_code}')
|
|
print(f'\tResponse-Headers {self.response.headers}')
|
|
print(f'\tResponse-Text {self.response.text}')
|
|
|