Skip to content

Commit 6c77ee5

Browse files
feat: handle URL path prefix in InfluxDB
1 parent c35f372 commit 6c77ee5

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

influxdb_client_3/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,12 +266,16 @@ def __init__(
266266
hostname = parsed_url.hostname if parsed_url.hostname else host
267267
port = parsed_url.port if parsed_url.port else 443
268268

269+
path = ""
270+
if parsed_url.scheme is not None and parsed_url.hostname is not None and parsed_url.port is not None:
271+
path = parsed_url.path
272+
269273
# Construct the clients using the parsed values
270274
if write_port_overwrite is not None:
271275
port = write_port_overwrite
272276

273277
self._client = _InfluxDBClient(
274-
url=f"{scheme}://{hostname}:{port}",
278+
url=f"{scheme}://{hostname}:{port}{path}",
275279
token=self._token,
276280
org=self._org,
277281
timeout=write_timeout,

tests/test_influxdb_client_3.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,33 @@ def test_get_version_fail(self):
352352
host=f'http://{server.host}:{server.port}', org="ORG", database="DB", token="TOKEN"
353353
).get_server_version()
354354

355+
def test_url_with_path_prefix(self):
356+
server = self.http_server
357+
server.expect_request('/prefix/ping').respond_with_json(
358+
response_json={"version": "3.0"},
359+
)
360+
version = InfluxDBClient3(
361+
host=f'http://{server.host}:{server.port}/prefix',
362+
org="ORG",
363+
database="DB",
364+
token="TOKEN"
365+
).get_server_version()
366+
assert version == "3.0"
367+
368+
def test_url_lack_path_prefix(self):
369+
server = self.http_server
370+
server.expect_request('/prefix/ping').respond_with_json(
371+
response_json={"version": "3.0"},
372+
)
373+
try:
374+
InfluxDBClient3(
375+
host=f'http://{server.host}:{server.port}',
376+
org="ORG",
377+
database="DB",
378+
token="TOKEN"
379+
).get_server_version()
380+
except ApiException:
381+
self.assertRaises(ApiException)
355382

356383
if __name__ == '__main__':
357384
unittest.main()

0 commit comments

Comments
 (0)