commit - 9267a13adf66323ac2ffb0544b81f40f0f74dce5
commit + 3382df6f682dd7ab880ab82a7479e4f3958efbd4
blob - ac9e2045c34ebb3fbe98fa3781b83ceb87bbdc81
blob + b7d4945cbb3698dd38c6e4a717af069ae925b189
--- rules/python/flakiness/sync_sleep.py
+++ rules/python/flakiness/sync_sleep.py
from selenium import webdriver
+import asyncio
+
# rule-id: sync_sleep
webdriver.set_page_load_timeout(30)
webdriver.set_page_load_timeout(0.3)
webdriver.set_script_timeout(20)
webdriver.set_script_timeout(0.2)
-# rule-id: sync_sleep
-await asyncio.sleep(1)
+async def foo():
+ # rule-id: sync_sleep
+ await asyncio.sleep(1)
import time
+
# rule-id: sync_sleep
time.sleep(10)
# rule-id: sync_sleep
time.sleep(0.2)
-
-def a():
- return 10
-
-# ok: sync_sleep
-t.sleep(a())
-
-# ok: sync_sleep
-t.sleep(some_var)
blob - 44453484ed64a020ff99c2a4dda04e1bcc5b4841
blob + 4fa10cb365f998ae02258883f20a535907978255
--- rules/python/flakiness/sync_sleep.yaml
+++ rules/python/flakiness/sync_sleep.yaml
rules:
-- id: sync_sleep
- patterns:
- - pattern-not: time.sleep($F(...))
- - pattern-either:
- - pattern: |
- await asyncio.sleep($X: int)
- - pattern: |
- await asyncio.sleep($X: float)
- - pattern: |
- time.sleep($X: int)
- - pattern: |
- time.sleep($X: float)
- - pattern: |
- selenium.webdriver.set_page_load_timeout($X: int)
- - pattern: |
- selenium.webdriver.set_page_load_timeout($X: float)
- - pattern: |
- selenium.webdriver.set_script_timeout($X: int)
- - pattern: |
- selenium.webdriver.set_script_timeout($X: float)
- message: |
- Tests uses sleep, instead of the flexible wait method.
- metadata:
- references:
- - https://stackoverflow.com/a/45347766/3665613
- - https://seleniumcamp.com/talk/deep-dive-into-selenium-waits/
- languages:
- - python
- severity: WARNING
+ - id: sync_sleep
+ pattern-either:
+ - pattern: time.sleep($D)
+ - pattern: await asyncio.sleep($D)
+ - pattern: await asyncio.sleep($D)
+ - pattern: selenium.webdriver.set_page_load_timeout($D)
+ - pattern: selenium.webdriver.set_page_load_timeout($D)
+ - pattern: selenium.webdriver.set_script_timeout($D)
+ - pattern: selenium.webdriver.set_script_timeout($D)
+ - pattern-regex: ^[+-]?(\pN+($|(?P>float)?e-?\pN+$)|(?<float>\pN*[,.]\pN+))
+ message: |
+ Tests uses sleep, instead of the flexible wait method.
+ metadata:
+ references:
+ - https://stackoverflow.com/a/45347766/3665613
+ - https://seleniumcamp.com/talk/deep-dive-into-selenium-waits/
+ languages:
+ - python
+ severity: WARNING