Skip to content

Commit 214046f

Browse files
committed
Fix user agent handling in DSL
1 parent 84ce3bc commit 214046f

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

elasticsearch/dsl/connections.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,15 @@ def get_connection(self, alias: Union[str, _T] = "default") -> _T:
117117

118118
def _with_user_agent(self, conn: _T) -> _T:
119119
# try to inject our user agent
120-
if hasattr(conn, "_headers"):
121-
is_frozen = conn._headers.frozen
120+
if hasattr(conn, "_base_client") and hasattr(conn._base_client, "_headers"):
121+
is_frozen = conn._base_client._headers.frozen
122122
if is_frozen:
123-
conn._headers = conn._headers.copy()
124-
conn._headers.update(
123+
conn._base_client._headers = conn._base_client._headers.copy()
124+
conn._base_client._headers.update(
125125
{"user-agent": f"elasticsearch-dsl-py/{__versionstr__}"}
126126
)
127127
if is_frozen:
128-
conn._headers.freeze()
128+
conn._base_client._headers.freeze()
129129
return conn
130130

131131

test_elasticsearch/test_dsl/test_connections.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,16 @@ def test_connection_has_correct_user_agent() -> None:
130130
my_client = Elasticsearch(hosts=["http://localhost:9200"])
131131
my_client = my_client.options(headers={"user-agent": "my-user-agent/1.0"})
132132
c.add_connection("default", my_client)
133-
assert c.get_connection()._headers["user-agent"].startswith("elasticsearch-dsl-py/")
133+
assert (
134+
c.get_connection()
135+
._base_client._headers["user-agent"]
136+
.startswith("elasticsearch-dsl-py/")
137+
)
134138

135139
my_client = Elasticsearch(hosts=["http://localhost:9200"])
136140
assert (
137141
c.get_connection(my_client)
138-
._headers["user-agent"]
142+
._base_client._headers["user-agent"]
139143
.startswith("elasticsearch-dsl-py/")
140144
)
141145

0 commit comments

Comments
 (0)