Files
QSfera/Desktop/test/gui/helpers/api/http_helper.py
T
Курнат Андрей 2315f25754 Initial QSfera import
2026-06-07 10:20:04 +03:00

61 lines
1.6 KiB
Python

import requests
import urllib3
from helpers.UserHelper import basic_auth_header
from helpers.ConfigHelper import get_config
urllib3.disable_warnings()
def send_request(url, method, body=None, headers=None, user=None, password=None):
auth_header = basic_auth_header(user, password)
if not headers:
headers = {}
headers.update(auth_header)
return requests.request(
method,
url,
data=body,
headers=headers,
verify=False,
# in seconds
# e.g.: 60
timeout=get_config("maxSyncTimeout"),
)
def get(url, headers=None, user=None, password=None):
return send_request(
url=url, method="GET", headers=headers, user=user, password=password
)
def post(url, body=None, headers=None, user=None):
return send_request(url, "POST", body, headers, user)
def put(url, body=None, headers=None, user=None):
return send_request(url, "PUT", body, headers, user)
def delete(url, headers=None, user=None):
return send_request(url=url, method="DELETE", headers=headers, user=user)
def mkcol(url, headers=None, user=None):
return send_request(url=url, method="MKCOL", headers=headers, user=user)
def propfind(url, body=None, headers=None, user=None, password=None):
return send_request(url, "PROPFIND", body, headers, user, password)
def assert_http_status(response, expected_code, message=""):
response_body = ""
if response.text:
response_body = response.text
assert (
response.status_code == expected_code
), f"{message}\nRequest failed with status code '{response.status_code}'\n{response_body}"