Skip to content

Commit 86ac051

Browse files
Merge pull request #153 from gleanwork/fix/x-glean-include-experimental-header
fix: emit X-Glean-Include-Experimental header (not X-Glean-Experimental)
2 parents 2739697 + bc77bac commit 86ac051

2 files changed

Lines changed: 15 additions & 15 deletions

File tree

src/glean/api_client/_hooks/x_glean.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class XGlean(BeforeRequestHook):
2727
2828
This hook adds the following headers when configured:
2929
- X-Glean-Exclude-Deprecated-After: Excludes API endpoints deprecated after this date
30-
- X-Glean-Experimental: Enables experimental API features
30+
- X-Glean-Include-Experimental: Enables experimental API features
3131
3232
Configuration can be done via environment variables or SDK constructor options.
3333
Environment variables take precedence over SDK constructor options.
@@ -65,6 +65,6 @@ def before_request(
6565
request.headers["X-Glean-Exclude-Deprecated-After"] = deprecated_value
6666

6767
if experimental_value:
68-
request.headers["X-Glean-Experimental"] = experimental_value
68+
request.headers["X-Glean-Include-Experimental"] = experimental_value
6969

7070
return request

tests/test_x_glean_hook.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def test_no_headers_when_neither_options_nor_env_vars_set(self):
7272
result = hook.before_request(context, request)
7373

7474
assert "X-Glean-Exclude-Deprecated-After" not in result.headers
75-
assert "X-Glean-Experimental" not in result.headers
75+
assert "X-Glean-Include-Experimental" not in result.headers
7676

7777
def test_sets_deprecated_header_from_sdk_option(self):
7878
"""Should set X-Glean-Exclude-Deprecated-After header from SDK option."""
@@ -85,24 +85,24 @@ def test_sets_deprecated_header_from_sdk_option(self):
8585
assert result.headers.get("X-Glean-Exclude-Deprecated-After") == "2026-10-15"
8686

8787
def test_sets_experimental_header_when_include_experimental_is_true(self):
88-
"""Should set X-Glean-Experimental header when includeExperimental is True."""
88+
"""Should set X-Glean-Include-Experimental header when includeExperimental is True."""
8989
hook = XGlean()
9090
request = create_mock_request()
9191
context = create_mock_context(include_experimental=True)
9292

9393
result = hook.before_request(context, request)
9494

95-
assert result.headers.get("X-Glean-Experimental") == "true"
95+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
9696

9797
def test_no_experimental_header_when_include_experimental_is_false(self):
98-
"""Should not set X-Glean-Experimental header when includeExperimental is False."""
98+
"""Should not set X-Glean-Include-Experimental header when includeExperimental is False."""
9999
hook = XGlean()
100100
request = create_mock_request()
101101
context = create_mock_context(include_experimental=False)
102102

103103
result = hook.before_request(context, request)
104104

105-
assert "X-Glean-Experimental" not in result.headers
105+
assert "X-Glean-Include-Experimental" not in result.headers
106106

107107
def test_sets_both_headers_when_both_options_provided(self):
108108
"""Should set both headers when both options are provided."""
@@ -116,7 +116,7 @@ def test_sets_both_headers_when_both_options_provided(self):
116116
result = hook.before_request(context, request)
117117

118118
assert result.headers.get("X-Glean-Exclude-Deprecated-After") == "2026-10-15"
119-
assert result.headers.get("X-Glean-Experimental") == "true"
119+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
120120

121121
def test_sets_deprecated_header_from_env_var(self):
122122
"""Should set X-Glean-Exclude-Deprecated-After header from environment variable."""
@@ -131,7 +131,7 @@ def test_sets_deprecated_header_from_env_var(self):
131131
assert result.headers.get("X-Glean-Exclude-Deprecated-After") == "2027-01-01"
132132

133133
def test_sets_experimental_header_from_env_var(self):
134-
"""Should set X-Glean-Experimental header from environment variable."""
134+
"""Should set X-Glean-Include-Experimental header from environment variable."""
135135
os.environ["X_GLEAN_INCLUDE_EXPERIMENTAL"] = "true"
136136

137137
hook = XGlean()
@@ -140,7 +140,7 @@ def test_sets_experimental_header_from_env_var(self):
140140

141141
result = hook.before_request(context, request)
142142

143-
assert result.headers.get("X-Glean-Experimental") == "true"
143+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
144144

145145
def test_sets_both_headers_from_env_vars(self):
146146
"""Should set both headers from environment variables."""
@@ -154,7 +154,7 @@ def test_sets_both_headers_from_env_vars(self):
154154
result = hook.before_request(context, request)
155155

156156
assert result.headers.get("X-Glean-Exclude-Deprecated-After") == "2027-06-15"
157-
assert result.headers.get("X-Glean-Experimental") == "true"
157+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
158158

159159
def test_env_var_takes_precedence_for_deprecated(self):
160160
"""Environment variable should take precedence over SDK option for deprecated."""
@@ -178,7 +178,7 @@ def test_env_var_takes_precedence_for_experimental(self):
178178

179179
result = hook.before_request(context, request)
180180

181-
assert result.headers.get("X-Glean-Experimental") == "true"
181+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
182182

183183
def test_env_vars_take_precedence_for_both_headers(self):
184184
"""Environment variables should take precedence for both headers when all are set."""
@@ -195,7 +195,7 @@ def test_env_vars_take_precedence_for_both_headers(self):
195195
result = hook.before_request(context, request)
196196

197197
assert result.headers.get("X-Glean-Exclude-Deprecated-After") == "2028-01-01"
198-
assert result.headers.get("X-Glean-Experimental") == "true"
198+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
199199

200200
def test_preserves_existing_headers(self):
201201
"""Should preserve existing headers when adding X-Glean headers."""
@@ -215,7 +215,7 @@ def test_preserves_existing_headers(self):
215215
assert result.headers.get("Authorization") == "Bearer token"
216216
assert result.headers.get("Content-Type") == "application/json"
217217
assert result.headers.get("X-Glean-Exclude-Deprecated-After") == "2026-10-15"
218-
assert result.headers.get("X-Glean-Experimental") == "true"
218+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
219219

220220
def test_returns_httpx_request_instance(self):
221221
"""Should return an httpx.Request instance."""
@@ -257,7 +257,7 @@ def test_handles_multipart_streaming_request(self):
257257

258258
result = hook.before_request(context, request)
259259

260-
assert result.headers.get("X-Glean-Experimental") == "true"
260+
assert result.headers.get("X-Glean-Include-Experimental") == "true"
261261
assert result.method == "POST"
262262

263263

0 commit comments

Comments
 (0)