"""Integration tests.""" import time from tests.integration.api import conftest from tests.integration.api.conftest import update_default_integration from tests.integration.api.consts.api_body import ( integration_default_on, integration_default_off, ) import pytest @pytest.mark.skip( reason='This GET /workspaces/ endpoint not longer works after the Harness acquisition' ) def test_turn_on_off_split_feature(): """When called with splitioEnabled then ows_features_example should be enabled by default""" # Get workspace_id update_default_integration(integration_default_on, 'integration_default_on') update_default_integration(integration_default_off, 'integration_default_off') # Returns the default feature value feature_api_client = conftest.ows_features_api_client(conftest.basic_headers()) response = feature_api_client.get_features('/integration_default_on') assert response.status_code == 200, ( f'Reason: {response.reason} \n URL: {response.url}' ) assert response.text == 'enabled' # Returns the ON instead of default value feature_api_client = conftest.ows_features_api_client(conftest.basic_headers()) response = feature_api_client.get_features('/integration_default_off') assert response.status_code == 200, ( f'Reason: {response.reason} \n URL: {response.url}' ) max_attempts = 5 for _ in range(max_attempts): response = feature_api_client.get_features('/integration_default_off') assert response.status_code == 200, ( f'Reason: {response.reason} \n URL: {response.url}' ) if response.text == 'enabled': print('Looks like we need more time, wait for 5 seconds') time.sleep(5) else: print('Max attempts reached. Returning last response.') assert response.text == 'control' break # Update integration_default_off to ON integration_default_off['defaultRule'] = [{'treatment': 'on', 'size': 100}] update_default_integration(integration_default_off, 'integration_default_off') # Returns the integration_default_off is enabled feature_api_client = conftest.ows_features_api_client(conftest.basic_headers()) max_attempts = 5 for _ in range(max_attempts): response = feature_api_client.get_features('/integration_default_off') assert response.status_code == 200, ( f'Reason: {response.reason} \n URL: {response.url}' ) if response.text == 'control': print('Looks like we need more time, wait for 5 seconds') time.sleep(5) else: print('Max attempts reached. Returning last response.') assert response.text == 'enabled' break