Skip to content

Commit

Permalink
tests: prevent double publishing of metrics
Browse files Browse the repository at this point in the history
It seem that pytest_runtest_logreport is triggered for the worker where
the test happens and the main process.

So do not emit metrics unless we are in the main process.

Signed-off-by: Pablo Barbáchano <[email protected]>
  • Loading branch information
pb8o committed Dec 16, 2024
1 parent 0bee970 commit 2239c0f
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@ def record_props(request, record_property):
def pytest_runtest_logreport(report):
"""Send general test metrics to CloudWatch"""

# only publish metrics from the main process
worker_id = os.environ.get("PYTEST_XDIST_WORKER")
if worker_id is not None:
return

# The pytest's test protocol has three phases for each test item: setup,
# call and teardown. At the end of each phase, pytest_runtest_logreport()
# is called.
Expand Down Expand Up @@ -135,6 +140,7 @@ def pytest_runtest_logreport(report):
# and global
{},
)
METRICS.set_property("pytest_xdist_worker", worker_id)
METRICS.set_property("result", report.outcome)
METRICS.set_property("location", report.location)
for prop_name, prop_val in report.user_properties:
Expand Down

0 comments on commit 2239c0f

Please sign in to comment.