mirror of
https://git.zavage.net/Zavage-Software/wabot.git
synced 2026-07-21 13:06:08 -06:00
test: assert pacing actually varies; document NoPacing as policy base
This commit is contained in:
parent
25aaa5d4da
commit
f5e358393d
@ -11,7 +11,12 @@ import random
|
|||||||
|
|
||||||
|
|
||||||
class NoPacing:
|
class NoPacing:
|
||||||
"""Instant actions, exact clicks."""
|
"""Instant actions, exact clicks.
|
||||||
|
|
||||||
|
Also the base class for custom pacing policies; do not use
|
||||||
|
``isinstance(x, NoPacing)`` to test whether pacing is disabled —
|
||||||
|
HumanPacing subclasses this.
|
||||||
|
"""
|
||||||
|
|
||||||
def delay(self, action: str) -> float:
|
def delay(self, action: str) -> float:
|
||||||
"""Seconds to sleep before performing ``action``."""
|
"""Seconds to sleep before performing ``action``."""
|
||||||
|
|||||||
@ -24,15 +24,21 @@ class TestHumanPacing:
|
|||||||
def test_unknown_action_has_no_delay(self):
|
def test_unknown_action_has_no_delay(self):
|
||||||
assert HumanPacing().delay("unknown-action") == 0.0
|
assert HumanPacing().delay("unknown-action") == 0.0
|
||||||
|
|
||||||
|
def test_delays_actually_vary(self):
|
||||||
|
assert len({HumanPacing().delay("text") for _ in range(50)}) > 1
|
||||||
|
|
||||||
def test_click_offset_stays_inside_element(self):
|
def test_click_offset_stays_inside_element(self):
|
||||||
p = HumanPacing()
|
p = HumanPacing()
|
||||||
|
offsets = []
|
||||||
for _ in range(200):
|
for _ in range(200):
|
||||||
offset = p.click_offset(100, 40)
|
offset = p.click_offset(100, 40)
|
||||||
assert offset is not None
|
assert offset is not None
|
||||||
|
offsets.append(offset)
|
||||||
x, y = offset
|
x, y = offset
|
||||||
# offsets are measured from the element CENTER (selenium 4)
|
# offsets are measured from the element CENTER (selenium 4)
|
||||||
assert -49 <= x <= 49
|
assert -49 <= x <= 49
|
||||||
assert -19 <= y <= 19
|
assert -19 <= y <= 19
|
||||||
|
assert any(o != (0, 0) for o in offsets)
|
||||||
|
|
||||||
def test_tiny_elements_get_plain_click(self):
|
def test_tiny_elements_get_plain_click(self):
|
||||||
p = HumanPacing()
|
p = HumanPacing()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user