userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
metrics.py
1
"""
2
Provides a nicer pytest diff (via `testsuite`'s `CompareVisitor` mechanism)
3
for failing `== ` comparisons that involve
4
@ref pytest_userver.metrics.MetricsSnapshot "MetricsSnapshot".
5
6
@ingroup userver_testsuite_fixtures
7
"""
8
9
from
typing
import
Any
10
11
from
testsuite.plugins.assertrepr_compare
import
CompareVisitor
12
13
import
pytest_userver.metrics
14
15
16
def
pytest_register_compare_visitors() -> list[CompareVisitor]:
17
return
[
18
CompareVisitor(
19
predicate=_is_metrics_comparison,
20
visit=_metrics_compare_visit,
21
),
22
]
23
24
25
def
_is_metrics_comparison(left: Any, right: Any) -> bool:
26
return
any(isinstance(operand,
pytest_userver.metrics.MetricsSnapshot
)
for
operand
in
(left, right))
27
28
29
def
_metrics_compare_visit(left: Any, right: Any, reporter: object) -> tuple[Any, Any]:
30
return
(
31
pytest_userver.metrics.stringify_snapshot_for_diff
(left, other=right),
32
pytest_userver.metrics.stringify_snapshot_for_diff
(right, other=left),
33
)
testsuite
pytest_plugins
pytest_userver
plugins
metrics.py
Generated on
for userver by
Doxygen
1.17.0