File make_tests_work.patch of Package python-pytest-codspeed

---
 tests/conftest.py                       |   88 ++++++++++++++++++++++++++++++++
 tests/examples/__init__.py              |    1 
 tests/examples/test_addition_fixture.py |    4 +
 3 files changed, 93 insertions(+)

--- /dev/null
+++ b/tests/conftest.py
@@ -0,0 +1,88 @@
+from __future__ import annotations
+
+import importlib.util
+import os
+import shutil
+import sys
+from contextlib import contextmanager
+from typing import TYPE_CHECKING
+
+import pytest
+
+from pytest_codspeed.instruments import MeasurementMode
+
+if TYPE_CHECKING:
+    from _pytest.pytester import RunResult
+
+pytest_plugins = ["pytester"]
+
+IS_PYTEST_BENCHMARK_INSTALLED = importlib.util.find_spec("pytest_benchmark") is not None
+skip_without_pytest_benchmark = pytest.mark.skipif(
+    not IS_PYTEST_BENCHMARK_INSTALLED, reason="pytest_benchmark not installed"
+)
+skip_with_pytest_benchmark = pytest.mark.skipif(
+    IS_PYTEST_BENCHMARK_INSTALLED, reason="pytest_benchmark installed"
+)
+if IS_PYTEST_BENCHMARK_INSTALLED:
+    pytest_plugins.append("pytest_benchmark")
+    print(
+        "NOTICE: Testing with pytest-benchmark compatibility",
+        file=sys.stderr,
+        flush=True,
+    )
+
+IS_VALGRIND_INSTALLED = shutil.which("valgrind") is not None
+skip_without_valgrind = pytest.mark.skipif(
+    "PYTEST_CODSPEED_FORCE_VALGRIND_TESTS" not in os.environ
+    and not IS_VALGRIND_INSTALLED,
+    reason="valgrind not installed",
+)
+
+if IS_VALGRIND_INSTALLED:
+    print("NOTICE: Testing with valgrind compatibility", file=sys.stderr, flush=True)
+
+IS_PERF_TRAMPOLINE_SUPPORTED = sys.version_info >= (3, 12)
+skip_without_perf_trampoline = pytest.mark.skipif(
+    not IS_PERF_TRAMPOLINE_SUPPORTED, reason="perf trampoline is not supported"
+)
+
+skip_with_perf_trampoline = pytest.mark.skipif(
+    IS_PERF_TRAMPOLINE_SUPPORTED, reason="perf trampoline is supported"
+)
+
+# The name for the pytest-xdist plugin is just "xdist"
+IS_PYTEST_XDIST_INSTALLED = importlib.util.find_spec("xdist") is not None
+skip_without_pytest_xdist = pytest.mark.skipif(
+    not IS_PYTEST_XDIST_INSTALLED,
+    reason="pytest_xdist not installed",
+)
+
+
[email protected](scope="function")
+def codspeed_env(monkeypatch):
+    @contextmanager
+    def ctx_manager():
+        monkeypatch.setenv("CODSPEED_ENV", "1")
+        try:
+            yield
+        finally:
+            monkeypatch.delenv("CODSPEED_ENV", raising=False)
+
+    return ctx_manager
+
+
+def run_pytest_codspeed_with_mode(
+    pytester: pytest.Pytester, mode: MeasurementMode, *args, **kwargs
+) -> RunResult:
+    csargs = [
+        "--codspeed",
+        f"--codspeed-mode={mode.value}",
+    ]
+    if mode == MeasurementMode.WallTime:
+        # Run only 1 round to speed up the test times
+        csargs.extend(["--codspeed-warmup-time=0", "--codspeed-max-rounds=2"])
+    return pytester.runpytest(
+        *csargs,
+        *args,
+        **kwargs,
+    )
--- /dev/null
+++ b/tests/examples/__init__.py
@@ -0,0 +1 @@
+# this comment left intentionally empty
--- /dev/null
+++ b/tests/examples/test_addition_fixture.py
@@ -0,0 +1,4 @@
+def test_some_addition_performance(benchmark):
+    @benchmark
+    def _():
+        return 1 + 1
openSUSE Build Service is sponsored by
OSZAR »