mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-04-11 04:45:45 +00:00
chore(python): replace 'pytest-rerunfailures' with 'pytest-retry'
[no changelog]
This commit is contained in:
parent
3a24945de9
commit
f1d3f835b8
18
poetry.lock
generated
18
poetry.lock
generated
@ -1593,20 +1593,22 @@ files = [
|
||||
pytest = ">=3.0.0"
|
||||
|
||||
[[package]]
|
||||
name = "pytest-rerunfailures"
|
||||
version = "15.0"
|
||||
description = "pytest plugin to re-run tests to eliminate flaky failures"
|
||||
name = "pytest-retry"
|
||||
version = "1.7.0"
|
||||
description = "Adds the ability to retry flaky tests in CI environments"
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
groups = ["main"]
|
||||
files = [
|
||||
{file = "pytest-rerunfailures-15.0.tar.gz", hash = "sha256:2d9ac7baf59f4c13ac730b47f6fa80e755d1ba0581da45ce30b72fb3542b4474"},
|
||||
{file = "pytest_rerunfailures-15.0-py3-none-any.whl", hash = "sha256:dd150c4795c229ef44320adc9a0c0532c51b78bb7a6843a8c53556b9a611df1a"},
|
||||
{file = "pytest_retry-1.7.0-py3-none-any.whl", hash = "sha256:a2dac85b79a4e2375943f1429479c65beb6c69553e7dae6b8332be47a60954f4"},
|
||||
{file = "pytest_retry-1.7.0.tar.gz", hash = "sha256:f8d52339f01e949df47c11ba9ee8d5b362f5824dff580d3870ec9ae0057df80f"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
packaging = ">=17.1"
|
||||
pytest = ">=7.4,<8.2.2 || >8.2.2"
|
||||
pytest = ">=7.0.0"
|
||||
|
||||
[package.extras]
|
||||
dev = ["black", "flake8", "isort", "mypy"]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-timeout"
|
||||
@ -2340,4 +2342,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it
|
||||
[metadata]
|
||||
lock-version = "2.1"
|
||||
python-versions = "^3.9"
|
||||
content-hash = "3d8597dbd91d37eabc20ce7e19f5996cda93243fcfbcd93fba73e9abd7b46373"
|
||||
content-hash = "3cf7446762b2697275d563511071e6368edafb8c86eeb88a402bbe7bfb9ba6ac"
|
||||
|
@ -77,7 +77,7 @@ trezor-pylint-plugin = {path = "./tools/trezor-pylint-plugin", develop = true}
|
||||
trezor-core-tools = {path = "./core/tools", develop = true}
|
||||
flake8-annotations = "^3.1.1"
|
||||
pyelftools = "^0.32"
|
||||
pytest-rerunfailures = "^15.0"
|
||||
pytest-retry = "^1.7.0"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
scan-build = "*"
|
||||
|
@ -35,6 +35,10 @@ LOG = logging.getLogger(__name__)
|
||||
_DEFAULT_READ_TIMEOUT: float | None = None
|
||||
|
||||
|
||||
class UnexpectedMagic(RuntimeError):
|
||||
pass
|
||||
|
||||
|
||||
class Handle(StructuralType):
|
||||
"""PEP 544 structural type for Handle functionality.
|
||||
(called a "Protocol" in the proposed PEP, name which is impractical here)
|
||||
@ -163,7 +167,7 @@ class ProtocolV1(Protocol):
|
||||
def read_first(self, timeout: float | None = None) -> tuple[int, int, bytes]:
|
||||
chunk = self.handle.read_chunk(timeout=timeout)
|
||||
if chunk[:3] != b"?##":
|
||||
raise RuntimeError(f"Unexpected magic characters: {chunk.hex()}")
|
||||
raise UnexpectedMagic(chunk.hex())
|
||||
try:
|
||||
msg_type, datalen = struct.unpack(">HL", chunk[3 : 3 + self.HEADER_LEN])
|
||||
except Exception:
|
||||
@ -175,5 +179,5 @@ class ProtocolV1(Protocol):
|
||||
def read_next(self, timeout: float | None = None) -> bytes:
|
||||
chunk = self.handle.read_chunk(timeout=timeout)
|
||||
if chunk[:1] != b"?":
|
||||
raise RuntimeError(f"Unexpected magic characters: {chunk.hex()}")
|
||||
raise UnexpectedMagic(chunk.hex())
|
||||
return chunk[1:]
|
||||
|
@ -40,9 +40,8 @@ addopts =
|
||||
-rfER
|
||||
--strict-markers
|
||||
--random-order
|
||||
--only-rerun='RuntimeError: Unexpected magic characters: 3f'
|
||||
--only-rerun='Timeout: Timeout reading [A-Za-z]+ packet'
|
||||
--reruns=5
|
||||
--retries=5
|
||||
--retry-delay=1
|
||||
testpaths = tests crypto storage python/tests
|
||||
xfail_strict = true
|
||||
junit_family = xunit2
|
||||
|
@ -31,7 +31,7 @@ from trezorlib import debuglink, log, models
|
||||
from trezorlib.debuglink import TrezorClientDebugLink as Client
|
||||
from trezorlib.device import apply_settings
|
||||
from trezorlib.device import wipe as wipe_device
|
||||
from trezorlib.transport import enumerate_devices, get_transport, protocol
|
||||
from trezorlib.transport import Timeout, enumerate_devices, get_transport, protocol
|
||||
|
||||
# register rewrites before importing from local package
|
||||
# so that we see details of failed asserts from this module
|
||||
@ -505,6 +505,10 @@ def pytest_runtest_setup(item: pytest.Item) -> None:
|
||||
pytest.skip("Skipping altcoin test")
|
||||
|
||||
|
||||
def pytest_set_filtered_exceptions():
|
||||
return (Timeout, protocol.UnexpectedMagic)
|
||||
|
||||
|
||||
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
|
||||
def pytest_runtest_makereport(item: pytest.Item, call) -> t.Generator:
|
||||
# Make test results available in fixtures.
|
||||
|
@ -25,7 +25,7 @@ from trezorlib.tools import H_
|
||||
|
||||
pytestmark = [
|
||||
pytest.mark.models("legacy"),
|
||||
pytest.mark.flaky(reruns=5),
|
||||
pytest.mark.flaky(retries=5),
|
||||
]
|
||||
|
||||
|
||||
|
@ -88,7 +88,7 @@ def test_busy_expiry_core(client: Client):
|
||||
_assert_busy(client, False)
|
||||
|
||||
|
||||
@pytest.mark.flaky(reruns=5)
|
||||
@pytest.mark.flaky(retries=5)
|
||||
@pytest.mark.models("legacy")
|
||||
def test_busy_expiry_legacy(client: Client):
|
||||
_assert_busy(client, False)
|
||||
|
Loading…
Reference in New Issue
Block a user