Skip to content

Commit 927e439

Browse files
committed
[TE-4628] Remove CI environment variable requirement for uploads
The presence of BUILDKITE_ANALYTICS_TOKEN is sufficient to determine upload intent. Previously, both CI and token were required, which caused issues for users who carefully manage environment variables in isolated container environments. This change removes the CI check from the API.submit() method while preserving the self.ci attribute for potential future use. Now only BUILDKITE_ANALYTICS_TOKEN determines whether uploads happen. Fixes #74
1 parent 8f039ba commit 927e439

2 files changed

Lines changed: 11 additions & 23 deletions

File tree

  • src/buildkite_test_collector/collector
  • tests/buildkite_test_collector/collector

src/buildkite_test_collector/collector/api.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ def submit(self, payload: Payload, batch_size=100) -> Generator[Optional[Respons
2929
"""Submit a payload to the API"""
3030
response = None
3131

32-
if not self.ci:
33-
yield None
34-
3532
if not self.token:
3633
logger.warning("No %s environment variable present", self.ENV_TOKEN)
3734
yield None

tests/buildkite_test_collector/collector/test_api.py

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,20 @@
1111
from buildkite_test_collector.collector.payload import Payload
1212
from requests.exceptions import ReadTimeout, ConnectTimeout
1313

14-
def test_submit_local_returns_none(capfd):
15-
env = {"CI": None}
16-
payload = Payload.init(RunEnvBuilder(env).build())
17-
18-
api = API(env)
19-
assert next(api.submit(payload)) is None
20-
captured = capfd.readouterr()
21-
22-
assert not captured.err.startswith("buildkite-test-collector - WARNING -")
23-
2414
def test_submit_with_missing_api_key_environment_variable_returns_none(capfd):
25-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": None}
15+
env = {"BUILDKITE_ANALYTICS_TOKEN": None}
2616
payload = Payload.init(RunEnvBuilder(env).build())
2717

2818
api = API(env)
2919
assert next(api.submit(payload)) is None
3020
captured = capfd.readouterr()
3121

32-
assert captured.err.startswith("buildkite-test-collector - WARNING -")
33-
22+
assert captured.err.startswith(
23+
"buildkite-test-collector - WARNING - No BUILDKITE_ANALYTICS_TOKEN"
24+
)
3425

3526
def test_submit_with_invalid_api_key_environment_variable_returns_none(capfd):
36-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": "\n"}
27+
env = {"BUILDKITE_ANALYTICS_TOKEN": "\n"}
3728
payload = Payload.init(RunEnvBuilder(env).build())
3829

3930
api = API(env)
@@ -50,7 +41,7 @@ def test_submit_with_payload_timeout_captures_ConnectTimeout_error(capfd, succes
5041
"https://analytics-api.buildkite.com/v1/uploads",
5142
body=ConnectTimeout("Error"))
5243

53-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
44+
env = {"BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
5445
payload = Payload.init(RunEnvBuilder(env).build())
5546
payload = Payload.started(payload)
5647

@@ -71,7 +62,7 @@ def test_submit_with_payload_timeout_captures_ReadTimeout_error(capfd, successfu
7162
"https://analytics-api.buildkite.com/v1/uploads",
7263
body=ReadTimeout("Error"))
7364

74-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
65+
env = {"BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
7566
payload = Payload.init(RunEnvBuilder(env).build())
7667
payload = Payload.started(payload)
7768

@@ -97,7 +88,7 @@ def test_submit_with_payload_returns_an_api_response(successful_test):
9788
'run_url': 'https://buildkite.com/organizations/alembic/analytics/suites/test/runs/52c5d9f6-a4f2-4a2d-a1e6-993335789c92'},
9889
status=202)
9990

100-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
91+
env = {"BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
10192
payload = Payload.init(RunEnvBuilder(env).build())
10293
payload = Payload.started(payload)
10394

@@ -122,7 +113,7 @@ def test_submit_with_bad_response(successful_test):
122113
json={'error': str(uuid4())},
123114
status=401)
124115

125-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
116+
env = {"BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
126117
payload = Payload.init(RunEnvBuilder(env).build())
127118
payload = Payload.started(payload)
128119

@@ -156,7 +147,7 @@ def test_submit_with_large_payload_batches_requests(successful_test, failed_test
156147
'run_url': 'https://buildkite.com/organizations/alembic/analytics/suites/test/runs/52c5d9f6-a4f2-4a2d-a1e6-993335789c92'},
157148
status=202)
158149

159-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
150+
env = {"BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
160151
payload = Payload.init(RunEnvBuilder(env).build())
161152
payload = Payload.started(payload)
162153

@@ -193,7 +184,7 @@ def test_submit_with_batches_and_errors(capfd, successful_test, failed_test):
193184
'run_url': 'https://buildkite.com/organizations/alembic/analytics/suites/test/runs/52c5d9f6-a4f2-4a2d-a1e6-993335789c92'},
194185
status=202)
195186

196-
env = {"CI": "true", "BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
187+
env = {"BUILDKITE_ANALYTICS_TOKEN": str(uuid4())}
197188
payload = Payload.init(RunEnvBuilder(env).build())
198189
payload = Payload.started(payload)
199190

0 commit comments

Comments
 (0)