From b0b4240133ccc6abfd53f4e62f0944fc98fa4925 Mon Sep 17 00:00:00 2001 From: Daniel Roussel Date: Tue, 1 Oct 2024 10:29:16 +0200 Subject: [PATCH 1/2] Fix performance of test resulting in Hypothesis health check error. --- tests/enlyze/test_client.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/enlyze/test_client.py b/tests/enlyze/test_client.py index 9bfe547..d6e8f5b 100644 --- a/tests/enlyze/test_client.py +++ b/tests/enlyze/test_client.py @@ -23,7 +23,6 @@ from enlyze.client import EnlyzeClient from enlyze.constants import ( ENLYZE_BASE_URL, - MAXIMUM_NUMBER_OF_VARIABLES_PER_TIMESERIES_REQUEST, PRODUCTION_RUNS_API_SUB_PATH, TIMESERIES_API_SUB_PATH, ) @@ -350,6 +349,7 @@ def test_get_timeseries_returns_none_on_empty_response( ) @settings(suppress_health_check=[HealthCheck.function_scoped_fixture]) def test__get_timeseries_raises_on_mixed_response( + monkeypatch, data_strategy, start_datetime, end_datetime, @@ -360,6 +360,14 @@ def test__get_timeseries_raises_on_mixed_response( Tests that an `EnlyzeError` is raised if the timeseries API returns data for some of the variables but not all of them. """ + + # patch to lower value to improve test performance + max_vars_per_request = 10 + monkeypatch.setattr( + "enlyze.client.MAXIMUM_NUMBER_OF_VARIABLES_PER_TIMESERIES_REQUEST", + max_vars_per_request, + ) + client = make_client() variables = data_strategy.draw( st.lists( @@ -368,8 +376,8 @@ def test__get_timeseries_raises_on_mixed_response( data_type=st.just("INTEGER"), machine=st.just(machine), ), - min_size=MAXIMUM_NUMBER_OF_VARIABLES_PER_TIMESERIES_REQUEST + 1, - max_size=MAXIMUM_NUMBER_OF_VARIABLES_PER_TIMESERIES_REQUEST + 5, + min_size=max_vars_per_request + 1, + max_size=max_vars_per_request + 5, ) ) @@ -382,9 +390,7 @@ def test__get_timeseries_raises_on_mixed_response( "time", *[ str(variable.uuid) - for variable in variables[ - :MAXIMUM_NUMBER_OF_VARIABLES_PER_TIMESERIES_REQUEST - ] + for variable in variables[:max_vars_per_request] ], ], records=records, From b191ec179466c5ef706ece47842ec14e3e6770fd Mon Sep 17 00:00:00 2001 From: Daniel Roussel Date: Tue, 1 Oct 2024 10:45:54 +0200 Subject: [PATCH 2/2] fix start and end datetimes that could be equal --- tests/conftest.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 2129782..fb92c96 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,5 @@ import os -from datetime import datetime, timezone +from datetime import datetime, timedelta, timezone import hypothesis import pytest @@ -24,14 +24,21 @@ ), ) +DATETIME_TODAY_MIDNIGHT = datetime.now().replace( + hour=0, + minute=0, + second=0, + microsecond=0, +) + datetime_today_until_now_strategy = st.datetimes( - min_value=datetime.now().replace(hour=0), + min_value=DATETIME_TODAY_MIDNIGHT, max_value=datetime.now(), timezones=st.just(timezone.utc), ) datetime_before_today_strategy = st.datetimes( - max_value=datetime.now().replace(hour=0), + max_value=DATETIME_TODAY_MIDNIGHT - timedelta(microseconds=1), min_value=datetime(1970, 1, 1, 12, 0, 0), timezones=st.just(timezone.utc), )