From 1abe74e3a107431203b3fdd8ad7db40f36fcc58e Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Thu, 7 Mar 2024 09:30:51 +0100 Subject: [PATCH] Chore: improve test execution time: lower refresh and metrics intervals This commit lowers refresh and metrics intervals in tests, thereby cutting about two minutes or so of the test suite execution time. I'm worried, though, that it might make some tests more flaky. --- tests/unit_tests/test_client.py | 24 ++++++++++++------------ tests/utilities/testing_constants.py | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/unit_tests/test_client.py b/tests/unit_tests/test_client.py index e0a78d67..48e3597c 100644 --- a/tests/unit_tests/test_client.py +++ b/tests/unit_tests/test_client.py @@ -210,7 +210,7 @@ def test_uc_lifecycle(unleash_client): status=304, headers={"etag": ETAG_VALUE}, ) - time.sleep(16) + time.sleep(REFRESH_INTERVAL + 1) # Simulate server provisioning change responses.add( @@ -220,7 +220,7 @@ def test_uc_lifecycle(unleash_client): status=200, headers={"etag": "W/somethingelse"}, ) - time.sleep(30) + time.sleep(REFRESH_INTERVAL * 2) assert len(unleash_client.features) >= 9 @@ -329,13 +329,13 @@ def test_uc_dirty_cache(unleash_client_nodestroy): # Create Unleash client and check initial load unleash_client.initialize_client() - time.sleep(5) + time.sleep(1) assert unleash_client.is_enabled("testFlag") unleash_client.unleash_scheduler.shutdown() # Check that everything works if previous cache exists. unleash_client.initialize_client() - time.sleep(5) + time.sleep(1) assert unleash_client.is_enabled("testFlag") @@ -484,7 +484,7 @@ def test_uc_metrics(unleash_client): time.sleep(1) assert unleash_client.is_enabled("testFlag") - time.sleep(12) + time.sleep(METRICS_INTERVAL) request = json.loads(responses.calls[-1].request.body) assert request["bucket"]["toggles"]["testFlag"]["yes"] == 1 @@ -506,7 +506,7 @@ def test_uc_registers_metrics_for_nonexistent_features(unleash_client): unleash_client.is_enabled("nonexistent-flag") # Verify that the metrics are serialized - time.sleep(12) + time.sleep(METRICS_INTERVAL) request = json.loads(responses.calls[-1].request.body) assert request["bucket"]["toggles"]["nonexistent-flag"]["no"] == 1 @@ -526,7 +526,7 @@ def test_uc_metrics_dependencies(unleash_client): time.sleep(1) assert unleash_client.is_enabled("Child") - time.sleep(12) + time.sleep(METRICS_INTERVAL) request = json.loads(responses.calls[-1].request.body) assert request["bucket"]["toggles"]["Child"]["yes"] == 1 assert "Parent" not in request["bucket"]["toggles"] @@ -549,7 +549,7 @@ def test_uc_registers_variant_metrics_for_nonexistent_features(unleash_client): unleash_client.get_variant("nonexistent-flag") # Verify that the metrics are serialized - time.sleep(12) + time.sleep(METRICS_INTERVAL) request = json.loads(responses.calls[-1].request.body) assert request["bucket"]["toggles"]["nonexistent-flag"]["no"] == 1 assert request["bucket"]["toggles"]["nonexistent-flag"]["variants"]["disabled"] == 1 @@ -578,7 +578,7 @@ def test_uc_doesnt_count_metrics_for_dependency_parents(unleash_client): unleash_client.get_variant(child) # Verify that the parent doesn't have any metrics registered - time.sleep(12) + time.sleep(METRICS_INTERVAL) request = json.loads(responses.calls[-1].request.body) assert request["bucket"]["toggles"][child]["yes"] == 2 assert request["bucket"]["toggles"][child]["variants"]["childVariant"] == 1 @@ -608,7 +608,7 @@ def test_uc_counts_metrics_for_child_even_if_parent_is_disabled(unleash_client): unleash_client.get_variant(child) # Verify that the parent doesn't have any metrics registered - time.sleep(12) + time.sleep(METRICS_INTERVAL) request = json.loads(responses.calls[-1].request.body) assert request["bucket"]["toggles"][child]["no"] == 2 assert request["bucket"]["toggles"][child]["variants"]["disabled"] == 1 @@ -627,7 +627,7 @@ def test_uc_disabled_registration(unleash_client_toggle_only): unleash_client.initialize_client() unleash_client.is_enabled("testFlag") - time.sleep(20) + time.sleep(REFRESH_INTERVAL * 2) assert unleash_client.is_enabled("testFlag") for api_call in responses.calls: @@ -650,7 +650,7 @@ def test_uc_server_error(unleash_client): responses.add( responses.GET, URL + FEATURES_URL, json=MOCK_FEATURE_RESPONSE, status=200 ) - time.sleep(20) + time.sleep(REFRESH_INTERVAL * 2) assert unleash_client.is_enabled("testFlag") diff --git a/tests/utilities/testing_constants.py b/tests/utilities/testing_constants.py index ef32d0da..7f0311c2 100644 --- a/tests/utilities/testing_constants.py +++ b/tests/utilities/testing_constants.py @@ -14,9 +14,9 @@ APP_NAME = "pytest" ENVIRONMENT = "unit" INSTANCE_ID = "123" -REFRESH_INTERVAL = 15 +REFRESH_INTERVAL = 3 REFRESH_JITTER = None -METRICS_INTERVAL = 10 +METRICS_INTERVAL = 2 METRICS_JITTER = None DISABLE_METRICS = True DISABLE_REGISTRATION = True