Skip to content

Commit 20e1fd2

Browse files
authored
fix: send client spec version when fetching features (#370)
1 parent b72c9a8 commit 20e1fd2

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

UnleashClient/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
StreamingConnector,
2424
)
2525
from UnleashClient.constants import (
26+
APPLICATION_HEADERS,
2627
DISABLED_VARIATION,
2728
ETAG,
2829
METRIC_LAST_SENT_TIME,
@@ -290,6 +291,7 @@ def initialize_client(self, fetch_toggles: bool = True) -> None:
290291
start_scheduler = False
291292
base_headers = {
292293
**self.unleash_custom_headers,
294+
**APPLICATION_HEADERS,
293295
"unleash-connection-id": self.connection_id,
294296
"unleash-appname": self.unleash_app_name,
295297
"unleash-instanceid": self.unleash_instance_id,

tests/unit_tests/test_client.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import json
2+
import re
23
import threading
34
import time
45
import uuid
@@ -1487,3 +1488,20 @@ def test_uc_bootstrap_initializes_offline_connector():
14871488
assert unleash_client.is_enabled("testFlag")
14881489

14891490
unleash_client.destroy()
1491+
1492+
1493+
@responses.activate
1494+
def test_spec_header_is_sent_when_fetching_features():
1495+
responses.add(
1496+
responses.GET, URL + FEATURES_URL, json=MOCK_FEATURE_RESPONSE, status=200
1497+
)
1498+
1499+
unleash_client = UnleashClient(
1500+
URL, APP_NAME, disable_metrics=True, disable_registration=True
1501+
)
1502+
unleash_client.initialize_client()
1503+
client_spec = responses.calls[0].request.headers["Unleash-Client-Spec"]
1504+
1505+
## assert that the client spec looks like a semver string
1506+
semver_regex = r"^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$"
1507+
assert re.match(semver_regex, client_spec)

0 commit comments

Comments
 (0)