commit 73014509f73228fdc6dac21e5c61f8ba22dc3bad from: Sergey Bronnikov date: Wed Aug 07 10:47:51 2024 UTC rules/python: fix missed_retries rule commit - 190212ab3579321481115e04bb40758ae2c5ab5d commit + 73014509f73228fdc6dac21e5c61f8ba22dc3bad blob - fb64aade47c83a687018537cc29308373dd4a6a5 blob + 43b609cb83913e677b99670e482b6190ea541828 --- rules/python/flakiness/missed_retries.py +++ rules/python/flakiness/missed_retries.py @@ -1,9 +1,25 @@ from requests.adapters import HTTPAdapter +import requests + +url = "https://bronevichok.ru/" + s = requests.Session() # rule-id: missed_retries -s.mount('https://bronevichok.ru/', requests.adapters.HTTPAdapter(x)) +s.mount(url, HTTPAdapter()) +# ok: missed_retries +s.mount(url, HTTPAdapter(max_retries=3)) + from urllib3 import PoolManager, Retry +http = PoolManager() # rule-id: missed_retries +response = http.request('GET', url) + +retries = Retry(connect=5, read=2, redirect=5) +http = PoolManager(retries=retries) +# ok: missed_retries +response = http.request('GET', url) + http = PoolManager() -response = http.request('GET', 'https://bronevichok.ru/') +# ok: missed_retries +response = http.request('GET', url, retries=Retry(10)) blob - 4dd44f3b1c144a4e41dbc6396dd5b934998d3454 blob + e7721f87bb1202f7cb44899b8cf8436c21094cfe --- rules/python/flakiness/missed_retries.yaml +++ rules/python/flakiness/missed_retries.yaml @@ -1,18 +1,18 @@ rules: -- id: missed_retries - patterns: - - pattern-either: - - pattern: | - requests.adapters.HTTPAdapter() - - pattern: | - requests.adapters.HTTPAdapter(max_retries=$X) - - pattern: | - urllib3.PoolManager(..., retries=$X) - - pattern: | - urllib3.PoolManager() - message: | - No retries on access to resources. Some functions doesn't have retry - options (like "psycopg2.connect()") so you need to implement youself. - languages: - - python - severity: WARNING + - id: missed_retries + patterns: + - pattern-either: + - pattern: | + requests.adapters.HTTPAdapter() + - pattern: | + requests.adapters.HTTPAdapter(max_retries=$X) + - pattern: | + urllib3.PoolManager(..., retries=$X) + - pattern: | + urllib3.PoolManager() + message: | + No retries on access to resources. Some functions doesn't have retry + options (like "psycopg2.connect()") so you need to implement youself. + languages: + - python + severity: WARNING