Skip to content

Commit 4231871

Browse files
authored
Merge pull request #822 from superannotateai/FRIDAY_4586
Add SA_ENV var handling
2 parents d904a21 + 5307d5b commit 4231871

File tree

4 files changed

+55
-4
lines changed

4 files changed

+55
-4
lines changed

src/superannotate/lib/infrastructure/services/http_client.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def __init__(self, api_url: str, token: str, verify_ssl: bool = True):
5050
super().__init__(api_url, token)
5151
self._verify_ssl = verify_ssl
5252
self._version = os.environ.get("sa_version")
53+
self._env = os.environ.get("SA_ENV")
5354

5455
@property
5556
def verify_ssl(self):
@@ -86,7 +87,8 @@ def default_headers(self):
8687
).encode("utf-8")
8788
).decode("utf-8"),
8889
"User-Agent": f"Python-SDK-Version: {self._version}; Python: {platform.python_version()};"
89-
f"OS: {platform.system()}; Team: {self.team_id}",
90+
f"OS: {platform.system()}; Team: {self.team_id}"
91+
f"{'; Env: ' + self._env if self._env else ''}",
9092
}
9193

9294
@property

tests/integration/work_management/test_list_users.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import pytest
2-
32
from superannotate import SAClient
43
from tests.integration.base import BaseTestCase
54

tests/integration/work_management/test_pause_resume_user_activity.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from unittest import skip
2-
31
from lib.core.exceptions import AppException
42
from src.superannotate import SAClient
53
from tests.integration.base import BaseTestCase

tests/unit/test_http_client.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import os
2+
import platform
3+
from unittest import TestCase
4+
from unittest.mock import patch
5+
6+
from src.superannotate.lib.infrastructure.services.http_client import HttpClient
7+
8+
9+
class TestHttpClient(TestCase):
10+
def setUp(self):
11+
self.api_url = "https://api.example.com"
12+
self.team_id = 123
13+
self.token = f"test_token={self.team_id}"
14+
15+
@patch.dict(os.environ, {"sa_version": "1.0.0", "SA_ENV": "test"})
16+
def test_default_headers_with_env(self):
17+
client = HttpClient(self.api_url, self.token)
18+
headers = client.default_headers
19+
20+
expected_user_agent = (
21+
f"Python-SDK-Version: 1.0.0; Python: {platform.python_version()};"
22+
f"OS: {platform.system()}; Team: {self.team_id}; Env: test"
23+
)
24+
25+
assert headers["Authorization"] == self.token
26+
assert headers["authtype"] == "sdk"
27+
assert headers["Content-Type"] == "application/json"
28+
assert headers["User-Agent"] == expected_user_agent
29+
30+
@patch.dict(os.environ, {"sa_version": "2.0.0"}, clear=True)
31+
def test_default_headers_without_env(self):
32+
client = HttpClient(self.api_url, self.token)
33+
headers = client.default_headers
34+
35+
expected_user_agent = (
36+
f"Python-SDK-Version: 2.0.0; Python: {platform.python_version()};"
37+
f"OS: {platform.system()}; Team: {self.team_id}"
38+
)
39+
40+
assert headers["User-Agent"] == expected_user_agent
41+
assert "Env:" not in headers["User-Agent"]
42+
43+
def test_default_headers_no_version(self):
44+
with patch.dict(os.environ, {}, clear=True):
45+
client = HttpClient(self.api_url, self.token)
46+
headers = client.default_headers
47+
48+
expected_user_agent = (
49+
f"Python-SDK-Version: None; Python: {platform.python_version()};"
50+
f"OS: {platform.system()}; Team: {self.team_id}"
51+
)
52+
assert headers["User-Agent"] == expected_user_agent

0 commit comments

Comments
 (0)