You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by bo...@apache.org on 2023/02/27 21:19:34 UTC
[streampipes] 05/05: tmp
This is an automated email from the ASF dual-hosted git repository.
bossenti pushed a commit to branch 1259-verify-authentication-on-startup-of-python-client
in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit 3092040c7bbcbc89a88e4298c1c0ee5511573d88
Author: bossenti <bo...@posteo.de>
AuthorDate: Mon Feb 27 22:19:00 2023 +0100
tmp
Signed-off-by: bossenti <bo...@posteo.de>
---
.../streampipes/client/client.py | 29 ++++++++++++++++++++++
.../tests/client/test_endpoint.py | 2 ++
2 files changed, 31 insertions(+)
diff --git a/streampipes-client-python/streampipes/client/client.py b/streampipes-client-python/streampipes/client/client.py
index 9f24dbd58..e24b6e3e4 100644
--- a/streampipes-client-python/streampipes/client/client.py
+++ b/streampipes-client-python/streampipes/client/client.py
@@ -110,6 +110,35 @@ class StreamPipesClient:
self.dataStreamApi = DataStreamEndpoint(parent_client=self)
self.versionApi = VersionEndpoint(parent_client=self)
+ self.server_version = self._get_server_version()
+
+ def _get_server_version(self) -> str:
+ """Connects to the StreamPipes server and retrieves its version.
+
+ In addition to querying the server version, this method implicitly checks the specified credentials.
+
+ Returns
+ -------
+ sp_version: str
+ version of the connected StreamPipes instance
+
+ """
+
+ # retrieve metadata from the API via the Streampipes server
+ # as a side effect, the specified credentials are also tested to ensure that authentication is successful.
+ version_dict = self.versionApi.get(identifier="").to_dict(use_source_names=False)
+
+ # remove SNAPSHOT-suffix if present
+ sp_version = version_dict["backend_version"].replace("-SNAPSHOT", "")
+
+ logger.info(
+ "The StreamPipes version was successfully retrieved from the backend: %s. "
+ "By means of that, authentication via the provided credentials is also tested successfully.",
+ sp_version,
+ )
+
+ return sp_version
+
@staticmethod
def _set_up_logging(logging_level: int) -> None:
"""Configures the logging behavior of the `StreamPipesClient`.
diff --git a/streampipes-client-python/tests/client/test_endpoint.py b/streampipes-client-python/tests/client/test_endpoint.py
index 16a2b6d9d..9db949509 100644
--- a/streampipes-client-python/tests/client/test_endpoint.py
+++ b/streampipes-client-python/tests/client/test_endpoint.py
@@ -418,6 +418,7 @@ class TestMessagingEndpoint(TestCase):
)
)
+ @patch("streampipes.client.client.Session", autospec=True)
def test_messaging_endpoint_happy_path(self):
demo_endpoint = MessagingEndpoint(parent_client=self.client)
@@ -425,6 +426,7 @@ class TestMessagingEndpoint(TestCase):
self.assertTrue(isinstance(demo_endpoint.broker, NatsBroker))
+ @patch("streampipes.client.client.Session", autospec=True)
def test_messaging_endpoint_missing_configure(self):
demo_endpoint = MessagingEndpoint(parent_client=self.client)