Skip to content

Commit 61f9dd9

Browse files
authored
refactor(smoke test): centralise env variables (#15100)
1 parent 9bfb90e commit 61f9dd9

File tree

9 files changed

+296
-53
lines changed

9 files changed

+296
-53
lines changed

smoke-test/conftest.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph, get_default_graph
88

99
from tests.test_result_msg import send_message
10+
from tests.utilities import env_vars
1011
from tests.utils import (
1112
TestSessionWrapper,
1213
get_frontend_session,
@@ -149,11 +150,9 @@ def bin_pack_tasks(tasks, n_buckets):
149150
return buckets
150151

151152
def get_batch_start_end(num_tests: int) -> Tuple[int, int]:
152-
batch_count_env = os.getenv("BATCH_COUNT", 1)
153-
batch_count = int(batch_count_env)
153+
batch_count = env_vars.get_batch_count()
154154

155-
batch_number_env = os.getenv("BATCH_NUMBER", 0)
156-
batch_number = int(batch_number_env)
155+
batch_number = env_vars.get_batch_number()
157156

158157
if batch_count == 0 or batch_count > num_tests:
159158
raise ValueError(
@@ -182,7 +181,7 @@ def get_batch_start_end(num_tests: int) -> Tuple[int, int]:
182181
def pytest_collection_modifyitems(
183182
session: pytest.Session, config: pytest.Config, items: List[Item]
184183
) -> None:
185-
if os.getenv("TEST_STRATEGY") == "cypress":
184+
if env_vars.get_test_strategy() == "cypress":
186185
return # We launch cypress via pytests, but needs a different batching mechanism at cypress level.
187186

188187
# If BATCH_COUNT and BATCH_ENV vars are set, splits the pytests to batches and runs filters only the BATCH_NUMBER

smoke-test/tests/actions/doc_propagation/test_propagation.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph
2222
from datahub.ingestion.sink.file import FileSink, FileSinkConfig
2323
from datahub.utilities.urns.urn import Urn
24+
from tests.utilities import env_vars
2425
from tests.utils import (
2526
delete_urns_from_file,
2627
get_gms_url,
@@ -30,7 +31,7 @@
3031

3132
logger = logging.getLogger(__name__)
3233

33-
DELETE_AFTER_TEST = os.getenv("DELETE_AFTER_TEST", "false").lower() == "true"
34+
DELETE_AFTER_TEST = env_vars.get_delete_after_test()
3435

3536

3637
class FileEmitter:

smoke-test/tests/consistency_utils.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import logging
2-
import os
32
import subprocess
43
import time
54

6-
USE_STATIC_SLEEP: bool = bool(os.getenv("USE_STATIC_SLEEP", False))
7-
ELASTICSEARCH_REFRESH_INTERVAL_SECONDS: int = int(
8-
os.getenv("ELASTICSEARCH_REFRESH_INTERVAL_SECONDS", 3)
5+
from tests.utilities import env_vars
6+
7+
USE_STATIC_SLEEP: bool = env_vars.get_use_static_sleep()
8+
ELASTICSEARCH_REFRESH_INTERVAL_SECONDS: int = (
9+
env_vars.get_elasticsearch_refresh_interval_seconds()
910
)
10-
KAFKA_BOOTSTRAP_SERVER: str = str(os.getenv("KAFKA_BOOTSTRAP_SERVER", "broker:29092"))
11+
KAFKA_BOOTSTRAP_SERVER: str = env_vars.get_kafka_bootstrap_server()
1112

1213
logger = logging.getLogger(__name__)
1314

@@ -35,7 +36,7 @@ def wait_for_writes_to_sync(
3536
time.sleep(ELASTICSEARCH_REFRESH_INTERVAL_SECONDS)
3637
return
3738
KAFKA_BROKER_CONTAINER: str = str(
38-
os.getenv("KAFKA_BROKER_CONTAINER", infer_kafka_broker_container())
39+
env_vars.get_kafka_broker_container() or infer_kafka_broker_container()
3940
)
4041
start_time = time.time()
4142
# get offsets

smoke-test/tests/cypress/integration_test.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
get_time_lineage_urns,
1414
ingest_time_lineage,
1515
)
16+
from tests.utilities import env_vars
1617
from tests.utils import (
1718
create_datahub_step_state_aspects,
1819
delete_urns,
@@ -234,15 +235,15 @@ def _get_cypress_tests_batch():
234235
else:
235236
tests_with_weights.append(test)
236237

237-
test_batches = bin_pack_tasks(tests_with_weights, int(os.getenv("BATCH_COUNT", 1)))
238-
return test_batches[int(os.getenv("BATCH_NUMBER", 0))]
238+
test_batches = bin_pack_tasks(tests_with_weights, env_vars.get_batch_count())
239+
return test_batches[env_vars.get_batch_number()]
239240

240241

241242
def test_run_cypress(auth_session):
242243
# Run with --record option only if CYPRESS_RECORD_KEY is non-empty
243-
record_key = os.getenv("CYPRESS_RECORD_KEY")
244+
record_key = env_vars.get_cypress_record_key()
244245
tag_arg = ""
245-
test_strategy = os.getenv("TEST_STRATEGY", None)
246+
test_strategy = env_vars.get_test_strategy()
246247
if record_key:
247248
record_arg = " --record "
248249
batch_number = os.getenv("BATCH_NUMBER")

smoke-test/tests/openapi/v1/test_tracking.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
"""
1616

1717
import json
18-
import os
1918
import time
2019
from datetime import datetime, timezone
2120

@@ -24,6 +23,7 @@
2423
from confluent_kafka import Consumer, KafkaError
2524
from dotenv import load_dotenv
2625

26+
from tests.utilities import env_vars
2727
from tests.utils import get_kafka_broker_url
2828

2929
# Load environment variables from .env file if it exists
@@ -37,7 +37,7 @@ def test_tracking_api_mixpanel(auth_session, graph_client):
3737
"""Test that we can post events to the tracking endpoint and verify they are sent to Mixpanel."""
3838

3939
# Check if Mixpanel API secret is available in environment variables
40-
api_secret = os.environ.get("MIXPANEL_API_SECRET")
40+
api_secret = env_vars.get_mixpanel_api_secret()
4141
if not api_secret:
4242
pytest.skip("MIXPANEL_API_SECRET environment variable not set, skipping test")
4343

@@ -80,9 +80,7 @@ def test_tracking_api_mixpanel(auth_session, graph_client):
8080

8181
# Query Mixpanel's JQL API to retrieve our test event
8282
# Note: This requires a service account with access to JQL
83-
project_id = os.environ.get(
84-
"MIXPANEL_PROJECT_ID", "3653440"
85-
) # Allow project ID to be configurable too
83+
project_id = env_vars.get_mixpanel_project_id()
8684

8785
# log the unique_id
8886
print(f"\nLooking for test event with customField: {unique_id}")
@@ -357,8 +355,8 @@ def test_tracking_api_elasticsearch(auth_session):
357355

358356
# Query Elasticsearch to retrieve our test event
359357
# This requires the Elasticsearch URL and credentials
360-
es_url = os.environ.get("ELASTICSEARCH_URL", "http://localhost:9200")
361-
es_index = os.environ.get("ELASTICSEARCH_INDEX", "datahub_usage_event")
358+
es_url = env_vars.get_elasticsearch_url()
359+
es_index = env_vars.get_elasticsearch_index()
362360

363361
# Create a query to find our test event by the unique browserId and customField
364362
es_query = {

smoke-test/tests/read_only/test_services_up.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import os
21
import re
32

43
import pytest
54

5+
from tests.utilities import env_vars
6+
67
# Kept separate so that it does not cause failures in PRs
7-
DATAHUB_VERSION = os.getenv("TEST_DATAHUB_VERSION")
8+
DATAHUB_VERSION = env_vars.get_test_datahub_version()
89

910

1011
def looks_like_a_short_sha(sha: str) -> bool:

smoke-test/tests/test_result_msg.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import os
2-
31
from slack_sdk import WebClient
42

3+
from tests.utilities import env_vars
4+
55
datahub_stats = {}
66

77

@@ -10,10 +10,10 @@ def add_datahub_stats(stat_name, stat_val):
1010

1111

1212
def send_to_slack(passed: str):
13-
slack_api_token = os.getenv("SLACK_API_TOKEN")
14-
slack_channel = os.getenv("SLACK_CHANNEL")
15-
slack_thread_ts = os.getenv("SLACK_THREAD_TS")
16-
test_identifier = os.getenv("TEST_IDENTIFIER", "LOCAL_TEST")
13+
slack_api_token = env_vars.get_slack_api_token()
14+
slack_channel = env_vars.get_slack_channel()
15+
slack_thread_ts = env_vars.get_slack_thread_ts()
16+
test_identifier = env_vars.get_test_identifier()
1717
if slack_api_token is None or slack_channel is None:
1818
return
1919
client = WebClient(token=slack_api_token)

0 commit comments

Comments
 (0)