Be Patient#
bepatient is a library aimed at facilitating work with asynchronous applications. It allows for the repeated execution of specific actions until the desired effect is achieved.
Features#
- Set up and monitor requests for expected values.
- Flexible comparison using various checkers and comparers.
- Configure multiple conditions to be met by response.
- Inspect various aspects of the response (body, status code, headers).
- Detailed logs, facilitating the analysis of the test process.
- Retry mechanism with customizable retries and delay.
Installation#
To install bepatient, you can use pip:
pip install bepatient
bepatient supports Python 3.10+
Basic Usage#
from requests import get
from bepatient import wait_for_value_in_request
response = wait_for_value_in_request(
request=get("https://example.com/api"),
comparer="contain",
expected_value="string"
)
assert response.status_code == 200
If we need add more than one checker:
from requests import get
from bepatient import wait_for_values_in_request
list_of_checkers = [
{
"checker": "json_checker",
"comparer": "contain",
"expected_value": "string"
},
{
"checker": "headers_checker",
"comparer": "is_equal",
"expected_value": "cloudflare",
"dict_path": "Server",
},
]
response = wait_for_values_in_request(
request=get("https://example.com/api"),
checkers=list_of_checkers,
retries=5,
)
assert response.status_code == 200