Skip to content

Commit aba5037

Browse files
committed
Workaround for pytest-dev/pytest#1062 - only call the hook on first use.
1 parent 17fae31 commit aba5037

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/pytest_benchmark/session.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from .table import ResultsTable
1313
from .utils import SecondsDecimal
1414
from .utils import annotate_source
15+
from .utils import cached_property
1516
from .utils import first_or_value
1617
from .utils import get_machine_id
1718
from .utils import load_timer
@@ -33,11 +34,6 @@ def __init__(self, config):
3334
self.performance_regressions = []
3435
self.benchmarks = []
3536
self.machine_id = get_machine_id()
36-
self.machine_info = config.hook.pytest_benchmark_generate_machine_info(config=self.config)
37-
self.config.hook.pytest_benchmark_update_machine_info(
38-
config=self.config,
39-
machine_info=self.machine_info
40-
)
4137

4238
self.options = dict(
4339
min_time=SecondsDecimal(config.getoption("benchmark_min_time")),
@@ -92,6 +88,15 @@ def __init__(self, config):
9288
default_machine_id=self.machine_id, logger=self.logger)
9389
self.histogram = first_or_value(config.getoption("benchmark_histogram"), False)
9490

91+
@cached_property
92+
def machine_info(self):
93+
obj = self.config.hook.pytest_benchmark_generate_machine_info(config=self.config)
94+
self.config.hook.pytest_benchmark_update_machine_info(
95+
config=self.config,
96+
machine_info=obj
97+
)
98+
return obj
99+
95100
def prepare_benchmarks(self):
96101
for bench in self.benchmarks:
97102
if bench:

0 commit comments

Comments
 (0)