From a4d4f6659fb5e2786bb9fbe5eb800758aca31c66 Mon Sep 17 00:00:00 2001 From: deedy5 <65482418+deedy5@users.noreply.github.com> Date: Wed, 17 Apr 2024 12:33:26 +0300 Subject: [PATCH] pytest: remove `pytest-retry`, use decorator --- pyproject.toml | 6 ------ tests/test_client.py | 24 ++++++++++++++++++++++-- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c448f9b..7abb06e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,13 +32,7 @@ dependencies = [] [project.optional-dependencies] dev = [ "pytest>=8.1.1", - "pytest-retry>=1.6.2", ] [tool.maturin] features = ["pyo3/extension-module"] - -[tool.pytest.ini_options] -retries = 3 -retry_delay = 0.5 -cumulative_timing = false diff --git a/tests/test_client.py b/tests/test_client.py index b2db27f..3c5106f 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -1,12 +1,28 @@ import json +from time import sleep from urllib.parse import parse_qs +from pyreqwest_impersonate import Client -import pytest -from pyreqwest_impersonate import Client +def retry(max_retries=3, delay=1): + def decorator(func): + def wrapper(*args, **kwargs): + for attempt in range(max_retries): + try: + return func(*args, **kwargs) + except Exception as e: + if attempt < max_retries - 1: + sleep(delay) + continue + else: + raise e + + return wrapper + return decorator +@retry() def test_client_init_params(): auth = ("user", "password") headers = {"X-Test": "test"} @@ -20,6 +36,7 @@ def test_client_init_params(): assert json_data["args"] == {"x": "aaa", "y": "bbb"} +@retry() def test_client_get(): auth_bearer = "bearerXXXXXXXXXXXXXXXXXXXX" headers = {"X-Test": "test"} @@ -38,6 +55,7 @@ def test_client_get(): assert json_data["args"] == {"x": "aaa", "y": "bbb"} +@retry() def test_client_post_content(): auth = ("user", "password") headers = {"X-Test": "test"} @@ -59,6 +77,7 @@ def test_client_post_content(): assert json_data["data"] == "test content" +@retry() def test_client_post_data(): auth_bearer = "bearerXXXXXXXXXXXXXXXXXXXX" headers = {"X-Test": "test"} @@ -81,6 +100,7 @@ def test_client_post_data(): assert received_data_dict == {"key1": ["value1"], "key2": ["value2"]} +@retry() def test_client_get_impersonate(): client = Client(impersonate="chrome_123", verify=False) response = client.get("https://tls.peet.ws/api/all")